mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-01 14:58:09 +02:00
cairo-ft: Pass the palette to the COLRv1 renderer
It an unnecessary complication for use to pass the palette index, and have the COLRv1 renderer pull the palette out of the FT_Face, after we just selected it.
This commit is contained in:
parent
8992e26f07
commit
2e4afeb4bc
3 changed files with 7 additions and 14 deletions
|
|
@ -1188,29 +1188,20 @@ draw_colr_glyph (cairo_colr_glyph_render_t *render,
|
|||
cairo_status_t
|
||||
_cairo_render_colr_v1_glyph (FT_Face face,
|
||||
unsigned long glyph,
|
||||
FT_UShort palette_index,
|
||||
FT_Color *palette,
|
||||
int num_palette_entries,
|
||||
cairo_t *cr)
|
||||
{
|
||||
cairo_status_t status = CAIRO_STATUS_SUCCESS;
|
||||
cairo_colr_glyph_render_t colr_render;
|
||||
FT_Color *palette = NULL;
|
||||
FT_Palette_Data palette_data;
|
||||
|
||||
#if DEBUG_COLR
|
||||
printf ("_cairo_render_colr_glyph glyph index: %ld\n", glyph);
|
||||
#endif
|
||||
|
||||
if (FT_Palette_Data_Get (face, &palette_data) == 0 && palette_data.num_palettes > 0) {
|
||||
if (palette_index >= palette_data.num_palettes)
|
||||
palette_index = CAIRO_COLOR_PALETTE_DEFAULT;
|
||||
|
||||
if (FT_Palette_Select (face, palette_index, &palette) != 0)
|
||||
palette = NULL;
|
||||
}
|
||||
|
||||
colr_render.face = face;
|
||||
colr_render.palette = palette;
|
||||
colr_render.num_palette_entries = palette_data.num_palette_entries;
|
||||
colr_render.num_palette_entries = num_palette_entries;
|
||||
colr_render.foreground_color = cairo_pattern_reference (cairo_get_source (cr));
|
||||
colr_render.level = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -2831,7 +2831,8 @@ _cairo_ft_scaled_glyph_init_record_colr_v1_glyph (cairo_ft_scaled_font_t *scaled
|
|||
if (!_cairo_matrix_is_scale_0 (&scaled_font->base.scale)) {
|
||||
status = _cairo_render_colr_v1_glyph (face,
|
||||
_cairo_scaled_glyph_index (scaled_glyph),
|
||||
scaled_font->base.options.palette_index,
|
||||
palette,
|
||||
num_palette_entries,
|
||||
cr);
|
||||
if (status == CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED)
|
||||
status = CAIRO_INT_STATUS_UNSUPPORTED;
|
||||
|
|
|
|||
|
|
@ -81,7 +81,8 @@ _cairo_render_svg_glyph (const char *svg_document,
|
|||
cairo_private cairo_status_t
|
||||
_cairo_render_colr_v1_glyph (FT_Face face,
|
||||
unsigned long glyph,
|
||||
FT_UShort palette_index,
|
||||
FT_Color *palette,
|
||||
int num_palette_entries,
|
||||
cairo_t *cr);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue