diff options
Diffstat (limited to 'include/freetype/otsvg.h')
-rw-r--r-- | include/freetype/otsvg.h | 59 |
1 files changed, 34 insertions, 25 deletions
diff --git a/include/freetype/otsvg.h b/include/freetype/otsvg.h index 87482491c..2b3c00f29 100644 --- a/include/freetype/otsvg.h +++ b/include/freetype/otsvg.h @@ -33,6 +33,29 @@ FT_BEGIN_HEADER /************************************************************************** * + * @section: + * svg_fonts + * + * @title: + * OpenType SVG Fonts + * + * @abstract: + * OT-SVG API between FreeType and an external SVG rendering library. + * + * @description: + * This section describes the four hooks necessary to render SVG + * 'documents' that are contained in an OpenType font's 'SVG~' table. + * + * For more information on the implementation, see our standard hooks + * based on 'librsvg' in the [FreeType Demo + * Programs](https://gitlab.freedesktop.org/freetype/freetype-demos) + * repository. + * + */ + + + /************************************************************************** + * * @functype: * SVG_Lib_Init_Func * @@ -42,9 +65,6 @@ FT_BEGIN_HEADER * one would want to allocate a structure and point the `data_pointer` * to it and perform any library initializations that might be needed. * - * For more information on the implementation, see our standard hooks - * based on Librsvg in the 'FreeType Demo Programs' repository. - * * @inout: * data_pointer :: * The SVG rendering module stores a pointer variable that can be used @@ -77,9 +97,6 @@ FT_BEGIN_HEADER * structure that was allocated in the init hook and perform any * library-related closure that might be needed. * - * For more information on the implementation, see our standard hooks - * based on Librsvg in the 'FreeType Demo Programs' repository. - * * @inout: * data_pointer :: * The SVG rendering module stores a pointer variable that can be used @@ -101,7 +118,7 @@ FT_BEGIN_HEADER * * @description: * A callback that is called to render an OT-SVG glyph. This callback - * hook is called right after the preset hook @SVG_Lib_Preset_SlotFunc + * hook is called right after the preset hook @SVG_Lib_Preset_Slot_Func * has been called with `cache` set to `TRUE`. The data necessary to * render is available through the handle @FT_SVG_Document, which is set * in the `other` field of @FT_GlyphSlotRec. @@ -110,9 +127,6 @@ FT_BEGIN_HEADER * buffer that is allocated already at `slot->bitmap.buffer`. It also * sets the `num_grays` value as well as `slot->format`. * - * For more information on the implementation, see our standard hooks - * based on Librsvg in the 'FreeType Demo Programs' repository. - * * @input: * slot :: * The slot to render. @@ -145,6 +159,7 @@ FT_BEGIN_HEADER * two places. * * 1. When `FT_Load_Glyph` needs to preset the glyph slot. + * * 2. Right before the `svg` module calls the render callback hook. * * When it is the former, the argument `cache` is set to `FALSE`. When @@ -165,9 +180,6 @@ FT_BEGIN_HEADER * matrices into the SVG coordinate system, as the original matrix is * intended for the TTF/CFF coordinate system. * - * For more information on the implementation, see our standard hooks - * based on Librsvg in the 'FreeType Demo Programs' repository. - * * @input: * slot :: * The glyph slot that has the SVG document loaded. @@ -201,8 +213,8 @@ FT_BEGIN_HEADER * * @description: * A structure that stores the four hooks needed to render OT-SVG glyphs - * properly. The structure is publicly used to set the hooks via driver - * properties. + * properly. The structure is publicly used to set the hooks via the + * @svg-hooks driver property. * * The behavior of each hook is described in its documentation. One * thing to note is that the preset hook and the render hook often need @@ -211,9 +223,6 @@ FT_BEGIN_HEADER * For example, in the preset hook one can draw the glyph on a recorder * surface and later create a bitmap surface from it in the render hook. * - * For more information on the implementation, see our standard hooks - * based on Librsvg in the 'FreeType Demo Programs' repository. - * * @fields: * init_svg :: * The initialization hook. @@ -244,7 +253,7 @@ FT_BEGIN_HEADER /************************************************************************** * * @struct: - * FT_SVG_DocumentRec_ + * FT_SVG_DocumentRec * * @description: * A structure that models one SVG document. @@ -276,12 +285,12 @@ FT_BEGIN_HEADER * The translation to apply to the glyph while rendering. * * @note: - * When the slot is passed down to a renderer, the renderer can only - * access the `metrics` and `units_per_EM` fields via `slot->face`. - * However, when `FT_Glyph_To_Bitmap` sets up a dummy object, it has no - * way to set a `face` object. Thus, metrics information and - * `units_per_EM` (which is necessary for OT-SVG) has to be stored - * separately. + * When an @FT_GlyphSlot object `slot` is passed down to a renderer, the + * renderer can only access the `metrics` and `units_per_EM` fields via + * `slot->face`. However, when @FT_Glyph_To_Bitmap sets up a dummy + * object, it has no way to set a `face` object. Thus, metrics + * information and `units_per_EM` (which is necessary for OT-SVG) has to + * be stored separately. * * @since: * 2.12 |