#include <freetype/internal/ftcalc.h>
#include <freetype/internal/ftdebug.h>
#include <freetype/internal/ftstream.h>
#include <freetype/tttags.h>
#include <freetype/ftcolor.h>
#include <freetype/config/integer-types.h>
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
#include <freetype/internal/services/svmm.h>
#endif
#ifdef TT_CONFIG_OPTION_COLOR_LAYERS
#include "ttcolr.h"
#define BASE_GLYPH_SIZE …
#define BASE_GLYPH_PAINT_RECORD_SIZE …
#define LAYER_V1_LIST_PAINT_OFFSET_SIZE …
#define LAYER_V1_LIST_NUM_LAYERS_SIZE …
#define COLOR_STOP_SIZE …
#define VAR_IDX_BASE_SIZE …
#define LAYER_SIZE …
#define COLRV0_HEADER_SIZE …
#define COLRV1_HEADER_SIZE …
#define ENSURE_READ_BYTES( byte_size ) …
FT_PaintFormat_Internal;
BaseGlyphRecord;
BaseGlyphV1Record;
Colr;
#undef FT_COMPONENT
#define FT_COMPONENT …
FT_LOCAL_DEF( FT_Error )
tt_face_load_colr( TT_Face face,
FT_Stream stream )
{ … }
FT_LOCAL_DEF( void )
tt_face_free_colr( TT_Face face )
{ … }
static FT_Bool
find_base_glyph_record( FT_Byte* base_glyph_begin,
FT_UInt num_base_glyph,
FT_UInt glyph_id,
BaseGlyphRecord* record )
{ … }
FT_LOCAL_DEF( FT_Bool )
tt_face_get_colr_layer( TT_Face face,
FT_UInt base_glyph,
FT_UInt *aglyph_index,
FT_UInt *acolor_index,
FT_LayerIterator* iterator )
{ … }
static FT_Bool
read_color_line( Colr* colr,
FT_Byte* color_line_p,
FT_ColorLine* colorline,
FT_Bool read_variable )
{ … }
static FT_Bool
get_child_table_pointer ( Colr* colr,
FT_Byte* paint_base,
FT_Byte** p,
FT_Byte** child_table_pointer )
{ … }
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
static FT_Bool
get_deltas_for_var_index_base ( TT_Face face,
Colr* colr,
FT_ULong var_index_base,
FT_UInt num_deltas,
FT_ItemVarDelta* deltas )
{ … }
#endif
static FT_Bool
read_paint( TT_Face face,
Colr* colr,
FT_Byte* p,
FT_COLR_Paint* apaint )
{ … }
static FT_Bool
find_base_glyph_v1_record( FT_Byte * base_glyph_begin,
FT_UInt num_base_glyph,
FT_UInt glyph_id,
BaseGlyphV1Record *record )
{ … }
FT_LOCAL_DEF( FT_Bool )
tt_face_get_colr_glyph_paint( TT_Face face,
FT_UInt base_glyph,
FT_Color_Root_Transform root_transform,
FT_OpaquePaint* opaque_paint )
{ … }
FT_LOCAL_DEF( FT_Bool )
tt_face_get_color_glyph_clipbox( TT_Face face,
FT_UInt base_glyph,
FT_ClipBox* clip_box )
{ … }
FT_LOCAL_DEF( FT_Bool )
tt_face_get_paint_layers( TT_Face face,
FT_LayerIterator* iterator,
FT_OpaquePaint* opaque_paint )
{ … }
FT_LOCAL_DEF( FT_Bool )
tt_face_get_colorline_stops( TT_Face face,
FT_ColorStop* color_stop,
FT_ColorStopIterator *iterator )
{ … }
FT_LOCAL_DEF( FT_Bool )
tt_face_get_paint( TT_Face face,
FT_OpaquePaint opaque_paint,
FT_COLR_Paint* paint )
{ … }
FT_LOCAL_DEF( FT_Error )
tt_face_colr_blend_layer( TT_Face face,
FT_UInt color_index,
FT_GlyphSlot dstSlot,
FT_GlyphSlot srcSlot )
{ … }
#else
typedef int tt_colr_dummy_;
#endif