• Show log

    Commit

  • Hash : f04d8175
    Author : Shao Yu Zhang
    Date : 2018-05-13T03:25:09

    [sfnt] Preliminary support of coloured layer outlines.
    
    This commit enables OpenType's COLR/CPAL table handling; a typical
    application are color emojis that can be scaled to any size.
    
    If the color palette does not exist or is invalid, the rendering
    step rasterizes the outline instead.  The current implementation
    assumes that the foreground is black.
    
    Enable this by defining option TT_CONFIG_OPTION_COLOR_LAYERS.
    
    There are still some issues with metrics; additionally, an API to
    fetch color layers is missing.
    
    * devel/ftoption.h, include/freetype/config/ftoption.h
    (TT_CONFIG_OPTION_COLOR_LAYERS): New macro.
    
    * include/freetype/internal/ftobjs.h (FT_Glyph_LayerRec,
    FT_Colr_InternalRec): New structures.
    (FT_Slot_InternalRec): Add `color_layers' field.
    
    * include/freetype/internal/sfnt.h (TT_Load_Colr_Layer_Func,
    TT_Blend_Colr_Func): New function types.
    (SFNT_Interface): Add `load_colr', `free_colr', `load_colr_layer',
    and `colr_blend' fields.
    
    * include/freetype/internal/tttypes.h (TT_FaceRec): Add
    `colr_and_cpal' field.
    
    * include/freetype/internal/tttags. (TTAG_COLR, TTAG_CPAL): New
    macros.
    
    * src/sfnt/ttcolr.c, src/sfnt/ttcolr.h: New files.
    
    * src/base/ftobjs.c (ft_glyphslot_done, FT_Render_Glyph_Internal):
    Handle glyph color layers.
    
    * src/sfnt/Jamfile (_sources), src/sfnt/rules.mk (SFNT_DRV_SRC): Add
    `ttcolr.c'.
    
    * src/sfnt/sfdriver.c: Include `ttcolr.h'.
    (PUT_COLOR_LAYERS): New macro.
    Update call to `FT_DEFINE_SFNT_INTERFACE'.
    
    * src/sfnt/sfnt.c: Include `ttcolr.c'.
    
    * src/sfnt/sfobjs.c (sfnt_load_face): Load `COLR' and `CPAL' tables.
    (sfnt_done_face): Updated.
    
    * src/truetype/ttgload.c (TT_Load_Glyph): Handle color layers.
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/freetype.git
    Git SSH git@git.kmx.io:kc3-lang/freetype.git
    Public access ? public
    Description
    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg thodg_l
    Tags