Skip to content
GitLab
Explore
Sign in
Register
FreeType
FreeType
Compare revisions
9a9cec1690175fa4ca4ce86128ba0ae599478740 to c89a9c82c550e0d6753ba0e61453b9ae0f478a58
Commits on Source (2)
[docs] Add documentation on adding new modules to FreeType
· a7cdb194
Anurag Thakur
authored
Jun 30, 2023
a7cdb194
[docs] Add documentation on compiling FreeType on an Android Device
· c89a9c82
Anurag Thakur
authored
Jun 30, 2023
c89a9c82
Hide whitespace changes
Inline
Side-by-side
docs/.gitignore
View file @
c89a9c82
...
...
@@ -12,6 +12,8 @@ reference/
!INSTALL_MAC.md
!INSTALL_UNIX.md
!INSTALL_VMS.md
!INSTALL_ANDROID.md
!MODIFYING.md
# MkDocs Config file
mkdocs.yml
...
...
docs/INSTALL_ANDROID.md
0 → 100644
View file @
c89a9c82
TODO: Add details on how to compile freetype on android using termux
docs/MODIFYING.md
0 → 100644
View file @
c89a9c82
# Modifying FreeType
FreeType follows a modular architecture, i.e. all the features are
implemented as separate modules. There are separate modules for
rasterizers, font parsers, hinting etc. located under the
`src/`
directory.
(See https://freetype.org/freetype2/docs/design/design-5.html)
To add new features you have to either modify the existing modules or
add a new module to FreeType.
## Adding a new module to FreeType
Suppose we want to add a new module "example" to FreeType:
1.
Create a directory under
`src/`
having the same name as the module.
i.e.
`src/example/`
2.
Add source files under src/example having
`#define FT_MAKE_OPTION_SINGLE_OBJECT`
which includes the other files to create the module.
(See
`src/sdf/sdf.c`
for reference)
3.
Add the module to
`include/freetype/config/ftmodule.h`
according to whether
it is a renderer, font driver or another module like:
```C
FT_USE_MODULE( FT_Renderer_Class, ft_example_renderer_class )
```
4.
Add the module to
`modules.cfg`
in the toplevel directory:
```
RASTER_MODULES += example
```
5.
Under
`src/example`
add
`module.mk`
and
`rules.mk`
files to enable compilation
with
`make`
. (See
`src/smooth/rules.mk`
for reference).
6.
Now you can simply compile by using
`make`
in the toplevel directory and the module
should compile.
You can check out pre-existing modules for reference under
`src/`