summaryrefslogtreecommitdiffstats
path: root/gfx/cairo/missing-cairo-clip-init.diff
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/cairo/missing-cairo-clip-init.diff')
-rw-r--r--gfx/cairo/missing-cairo-clip-init.diff21
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.