mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-28 06:21:14 +00:00
Revert "gl: Simplify glyph cache rendering"
This reverts commit 7a3eaad193
.
The reason we want to keep using pango here
is that we get hex boxes and similar drawing
features that way.
This commit is contained in:
parent
5d10100fc0
commit
b576aef2b1
@ -123,7 +123,8 @@ render_glyph (GlyphCacheKey *key,
|
|||||||
cairo_surface_t *surface;
|
cairo_surface_t *surface;
|
||||||
cairo_t *cr;
|
cairo_t *cr;
|
||||||
cairo_scaled_font_t *scaled_font;
|
cairo_scaled_font_t *scaled_font;
|
||||||
cairo_glyph_t cairo_glyph;
|
PangoGlyphString glyph_string;
|
||||||
|
PangoGlyphInfo glyph_info;
|
||||||
int surface_width, surface_height;
|
int surface_width, surface_height;
|
||||||
int stride;
|
int stride;
|
||||||
unsigned char *data;
|
unsigned char *data;
|
||||||
@ -150,14 +151,18 @@ render_glyph (GlyphCacheKey *key,
|
|||||||
cairo_set_scaled_font (cr, scaled_font);
|
cairo_set_scaled_font (cr, scaled_font);
|
||||||
cairo_set_source_rgba (cr, 1, 1, 1, 1);
|
cairo_set_source_rgba (cr, 1, 1, 1, 1);
|
||||||
|
|
||||||
cairo_glyph.index = key->glyph;
|
glyph_info.glyph = key->glyph;
|
||||||
|
glyph_info.geometry.width = value->draw_width * 1024;
|
||||||
if (key->glyph & PANGO_GLYPH_UNKNOWN_FLAG)
|
if (key->glyph & PANGO_GLYPH_UNKNOWN_FLAG)
|
||||||
cairo_glyph.x = 0.25 * key->xshift;
|
glyph_info.geometry.x_offset = 0;
|
||||||
else
|
else
|
||||||
cairo_glyph.x = 0.25 * key->xshift - value->draw_x;
|
glyph_info.geometry.x_offset = - value->draw_x * 1024;
|
||||||
cairo_glyph.y = 0.25 * key->yshift - value->draw_y;
|
glyph_info.geometry.y_offset = - value->draw_y * 1024;
|
||||||
|
|
||||||
cairo_show_glyphs (cr, &cairo_glyph, 1);
|
glyph_string.num_glyphs = 1;
|
||||||
|
glyph_string.glyphs = &glyph_info;
|
||||||
|
|
||||||
|
pango_cairo_show_glyph_string (cr, key->font, &glyph_string);
|
||||||
cairo_destroy (cr);
|
cairo_destroy (cr);
|
||||||
|
|
||||||
cairo_surface_flush (surface);
|
cairo_surface_flush (surface);
|
||||||
|
Loading…
Reference in New Issue
Block a user