diff options
Diffstat (limited to 'gfx/cairo/missing-cairo-clip-init.diff')
-rw-r--r-- | gfx/cairo/missing-cairo-clip-init.diff | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gfx/cairo/missing-cairo-clip-init.diff b/gfx/cairo/missing-cairo-clip-init.diff new file mode 100644 index 0000000000..a3f46771f2 --- /dev/null +++ b/gfx/cairo/missing-cairo-clip-init.diff @@ -0,0 +1,21 @@ +diff --git a/gfx/cairo/cairo/src/cairo-gstate.c b/gfx/cairo/cairo/src/cairo-gstate.c +--- a/gfx/cairo/cairo/src/cairo-gstate.c ++++ b/gfx/cairo/cairo/src/cairo-gstate.c +@@ -1841,16 +1841,17 @@ _cairo_gstate_show_text_glyphs (cairo_gs + transformed_glyphs, + &num_glyphs, + transformed_clusters); + + if (status || num_glyphs == 0) + goto CLEANUP_GLYPHS; + + _cairo_gstate_copy_transformed_source (gstate, &source_pattern.base); ++ _cairo_clip_init(&clip); + + /* For really huge font sizes, we can just do path;fill instead of + * show_glyphs, as show_glyphs would put excess pressure on the cache, + * not all components below us correctly handle huge font sizes, and + * path filling can be cheaper since parts of glyphs are likely to be + * clipped out. 256 seems like a good limit. But alas, seems like cairo's + * rasterizer is something like ten times slower than freetype's for huge + * sizes. So, no win just yet when we're using cairo's rasterizer. |