25#ifdef TT_CONFIG_OPTION_COLOR_LAYERS
28 const FT_Palette_Data null_palette_data = { 0, NULL, NULL, 0, NULL };
33 FT_EXPORT_DEF( FT_Error )
34 FT_Palette_Data_Get( FT_Face face,
35 FT_Palette_Data *apalette_data )
38 return FT_THROW( Invalid_Face_Handle );
40 return FT_THROW( Invalid_Argument );
42 if ( FT_IS_SFNT( face ) )
43 *apalette_data = ( (TT_Face)face )->palette_data;
45 *apalette_data = null_palette_data;
53 FT_EXPORT_DEF( FT_Error )
54 FT_Palette_Select( FT_Face face,
55 FT_UShort palette_index,
59 TT_Face ttface = (TT_Face)face;
63 return FT_THROW( Invalid_Face_Handle );
65 if ( !FT_IS_SFNT( face ) )
73 if ( palette_index != ttface->palette_index )
75 SFNT_Service sfnt = (SFNT_Service)ttface->sfnt;
78 error = sfnt->set_palette( ttface, palette_index );
82 ttface->palette_index = palette_index;
86 *apalette = ttface->palette;
94 FT_EXPORT_DEF( FT_Error )
95 FT_Palette_Set_Foreground_Color( FT_Face face,
96 FT_Color foreground_color )
102 return FT_THROW( Invalid_Face_Handle );
104 if ( !FT_IS_SFNT( face ) )
107 ttface = (TT_Face)face;
109 ttface->foreground_color = foreground_color;
110 ttface->have_foreground_color = 1;
117 FT_EXPORT_DEF( FT_Error )
118 FT_Palette_Data_Get( FT_Face face,
119 FT_Palette_Data *apalette_data )
122 FT_UNUSED( apalette_data );
125 return FT_THROW( Unimplemented_Feature );
129 FT_EXPORT_DEF( FT_Error )
130 FT_Palette_Select( FT_Face face,
131 FT_UShort palette_index,
132 FT_Color* *apalette )
135 FT_UNUSED( palette_index );
136 FT_UNUSED( apalette );
139 return FT_THROW( Unimplemented_Feature );
143 FT_EXPORT_DEF( FT_Error )
144 FT_Palette_Set_Foreground_Color( FT_Face face,
145 FT_Color foreground_color )
148 FT_UNUSED( foreground_color );
151 return FT_THROW( Unimplemented_Feature );