gl renderer: Dont't try to draw glyphs at scale 0

Fixes #1475
This commit is contained in:
Timm Bäder 2019-01-10 17:14:48 +01:00
parent e72d0a9118
commit d55fc8b7b1
3 changed files with 5 additions and 2 deletions

View File

@ -322,12 +322,13 @@ gsk_gl_glyph_cache_lookup (GskGLGlyphCache *cache,
value->draw_height = ink_rect.height;
value->timestamp = cache->timestamp;
value->atlas = NULL; /* For now */
value->scale = (guint)(scale * 1024);
key->font = g_object_ref (font);
key->glyph = glyph;
key->scale = (guint)(scale * 1024);
if (ink_rect.width > 0 && ink_rect.height > 0)
if (ink_rect.width > 0 && ink_rect.height > 0 && key->scale > 0)
add_to_cache (cache, key, value);
g_hash_table_insert (cache->hash_table, key, value);

View File

@ -59,6 +59,8 @@ struct _GskGLCachedGlyph
int draw_width;
int draw_height;
float scale;
guint64 timestamp;
};

View File

@ -496,7 +496,7 @@ render_text_node (GskGLRenderer *self,
text_scale);
/* e.g. whitespace */
if (glyph->draw_width <= 0 || glyph->draw_height <= 0)
if (glyph->draw_width <= 0 || glyph->draw_height <= 0 || glyph->scale <= 0)
goto next;
cx = (double)(x_position + gi->geometry.x_offset) / PANGO_SCALE;