[docs] Add documentation on adding new modules to FreeType
This commit is contained in:
parent
45d3ff99d5
commit
64b2b80bcc
|
@ -12,6 +12,7 @@ reference/
|
||||||
!INSTALL_MAC.md
|
!INSTALL_MAC.md
|
||||||
!INSTALL_UNIX.md
|
!INSTALL_UNIX.md
|
||||||
!INSTALL_VMS.md
|
!INSTALL_VMS.md
|
||||||
|
!MODIFYING.md
|
||||||
|
|
||||||
# MkDocs Config file
|
# MkDocs Config file
|
||||||
mkdocs.yml
|
mkdocs.yml
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
# 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/`
|
Loading…
Reference in New Issue