.
diff --git a/src/OT/Color/COLR/COLR.hh b/src/OT/Color/COLR/COLR.hh
index 717d2b4..6e46fa3 100644
--- a/src/OT/Color/COLR/COLR.hh
+++ b/src/OT/Color/COLR/COLR.hh
@@ -2437,8 +2437,13 @@
{
TRACE_PAINT (this);
+ c->funcs->push_inverse_root_transform (c->data, c->font);
if (c->funcs->color_glyph (c->data, gid, c->font))
+ {
+ c->funcs->pop_transform (c->data);
return;
+ }
+ c->funcs->pop_transform (c->data);
const COLR *colr_table = c->get_colr_table ();
const Paint *paint = colr_table->get_base_glyph_paint (gid);
diff --git a/src/hb-cairo.cc b/src/hb-cairo.cc
index 6c80dd5..f4f9f54 100644
--- a/src/hb-cairo.cc
+++ b/src/hb-cairo.cc
@@ -176,11 +176,19 @@
hb_cairo_context_t *c = (hb_cairo_context_t *) paint_data;
cairo_t *cr = c->cr;
+ cairo_save (cr);
+
+ hb_position_t x_scale, y_scale;
+ hb_font_get_scale (font, &x_scale, &y_scale);
+ cairo_scale (cr, x_scale, y_scale);
+
cairo_glyph_t cairo_glyph = { glyph, 0, 0 };
cairo_set_scaled_font (cr, c->scaled_font);
- cairo_set_font_size (cr, hb_face_get_upem (hb_font_get_face (font)));
+ cairo_set_font_size (cr, 1);
cairo_show_glyphs (cr, &cairo_glyph, 1);
+ cairo_restore (cr);
+
return true;
}
diff --git a/test/api/results/test-154 b/test/api/results/test-154
index 8b329cf..1a86fe3 100644
--- a/test/api/results/test-154
+++ b/test/api/results/test-154
@@ -1,10 +1,14 @@
-# random seed: R02S9ffd1e4fb7cd9c50371f61b259bb32b5
+# random seed: R02S33c307340a09918aefe09266feb15798
# Start of hb tests
# Start of paint tests
# Start of ot tests
start clip rectangle 0 500 500 1e+03
start transform 1 0 0 1 0 0
+ start transform 1 0 -0 1 0 0
+ end transform
start clip rectangle 100 100 900 900
+ start transform 1 0 -0 1 0 0
+ end transform
start clip rectangle 0 0 1e+03 1e+03
start transform 1 0 -0 1 0 0
start clip glyph 2
diff --git a/test/api/test-paint.c b/test/api/test-paint.c
index 13b71c5..e1044ed 100644
--- a/test/api/test-paint.c
+++ b/test/api/test-paint.c
@@ -389,7 +389,7 @@
/* Run
*
- * GENERATE_DATA=1 G_TEST_SRCDIR=./test/api ./build/test/api/test-ot-color -p TESTCASE > test/api/results/OUTPUT
+ * GENERATE_DATA=1 G_TEST_SRCDIR=./test/api ./build/test/api/test-paint -p TESTCASE > test/api/results/OUTPUT
*
* to produce the expected results file.
*/