summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2005-08-24 01:42:19 +0000
committerKeith Packard <keithp@keithp.com>2005-08-24 01:42:19 +0000
commit5198e71eaf07538307843a58a57f4551411f40b6 (patch)
tree66ec14142585c88abd5468740cbf1b1520c0fada
parente4166936b9d2e1197efcdc378a6113a6c68a41ed (diff)
_cairo_surface_show_glyphs may return UNSUPPORTED in which case a call to scaled_font->backend->show_glyphs is needed.
reviewed by: cworth
-rw-r--r--ChangeLog8
-rw-r--r--src/cairo-meta-surface.c17
2 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 684a8ac5..0e35c2a4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,14 @@
reviewed by: cworth
+ * src/cairo-meta-surface.c: (_cairo_meta_surface_replay):
+ _cairo_surface_show_glyphs may return UNSUPPORTED in which
+ case a call to scaled_font->backend->show_glyphs is needed.
+
+2005-08-24 Keith Packard <keithp@keithp.com>
+
+ reviewed by: cworth
+
* src/cairo-gstate-private.h:
* src/cairo-gstate.c: (_cairo_gstate_init),
(_cairo_gstate_apply_device_transform),
diff --git a/src/cairo-meta-surface.c b/src/cairo-meta-surface.c
index f218ae24..2d3ae362 100644
--- a/src/cairo-meta-surface.c
+++ b/src/cairo-meta-surface.c
@@ -541,6 +541,23 @@ _cairo_meta_surface_replay (cairo_surface_t *surface,
command->show_glyphs.height,
command->show_glyphs.glyphs,
command->show_glyphs.num_glyphs);
+ if (status != CAIRO_INT_STATUS_UNSUPPORTED)
+ break;
+
+ status = (*command->show_glyphs.scaled_font->backend->
+ show_glyphs) (command->show_glyphs.scaled_font,
+ command->show_glyphs.operator,
+ &command->show_glyphs.pattern.base,
+ target,
+ command->show_glyphs.source_x,
+ command->show_glyphs.source_y,
+ command->show_glyphs.dest_x,
+ command->show_glyphs.dest_y,
+ command->show_glyphs.width,
+ command->show_glyphs.height,
+ command->show_glyphs.glyphs,
+ command->show_glyphs.num_glyphs);
+
break;
case CAIRO_COMMAND_FILL_PATH: