• Moazin's avatar
    Add 'svg' module for OT-SVG rendering. · 0bf49bd2
    Moazin authored and Werner Lemberg's avatar Werner Lemberg committed
    * CMakeLists.txt (BASE_SRCS): Add svg module file.
    * meson.build (ft2_public_headers): Add `otsvg.h`.
    
    * modules.cfg (RASTER_MODULES): Add `svg` module.
    
    * builds/meson/parse_modules_cfg.py: Add svg module.
    
    * include/freetype/config/ftmodule.h: Add `ft_svg_renderer_class`.
    * include/freetype/fterrdef.h: Add `Invalid_SVG_Document` and
    `Missing_SVG_Hooks` error codes.
    * include/freetype/internal/fttrace.h: Add tracing for `otsvg`.
    * include/freetype/internal/svginterface.h: New file.  It adds an interface
    to enable the presetting hook from the `base` module.
    * include/freetype/otsvg.h (SVG_Lib_Init_Func, SVG_Lib_Free_Func,
    SVG_Lib_Render_Func, SVG_Lib_Preset_Slot_Func): New hooks for SVG rendering.
    (SVG_RendererHooks): New structure to access them.
    
    * src/base/ftobjs.c: Include `svginterface.h`.
    (ft_glyphslot_preset_bitmap): Add code for presetting the slot for SVG
    glyphs.
    (ft_add_renderer): Updated.
    
    * src/svg/*: New files.
    0bf49bd2