diff --git a/src/cairo-atsui-font.c b/src/cairo-atsui-font.c index 572359f8d..9c5585178 100644 --- a/src/cairo-atsui-font.c +++ b/src/cairo-atsui-font.c @@ -664,6 +664,7 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font, } const cairo_scaled_font_backend_t cairo_atsui_scaled_font_backend = { + CAIRO_FONT_TYPE_ATSUI, _cairo_atsui_font_create_toy, _cairo_atsui_font_fini, _cairo_atsui_font_scaled_glyph_init, diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c index e159826a0..092838ab4 100644 --- a/src/cairo-ft-font.c +++ b/src/cairo-ft-font.c @@ -1901,6 +1901,7 @@ _cairo_ft_show_glyphs (void *abstract_font, } const cairo_scaled_font_backend_t cairo_ft_scaled_font_backend = { + CAIRO_FONT_TYPE_FT, _cairo_ft_scaled_font_create_toy, _cairo_ft_scaled_font_fini, _cairo_ft_scaled_glyph_init, diff --git a/src/cairo-scaled-font.c b/src/cairo-scaled-font.c index 8ebbf455f..46e1caccf 100644 --- a/src/cairo-scaled-font.c +++ b/src/cairo-scaled-font.c @@ -118,6 +118,12 @@ _cairo_scaled_font_set_error (cairo_scaled_font_t *scaled_font, _cairo_error (status); } +cairo_font_type_t +cairo_scaled_font_get_type (cairo_scaled_font_t *scaled_font) +{ + return scaled_font->backend->type; +} + /** * cairo_scaled_font_status: * @scaled_font: a #cairo_scaled_font_t diff --git a/src/cairo-win32-font.c b/src/cairo-win32-font.c index ca8e4a610..a3289fced 100644 --- a/src/cairo-win32-font.c +++ b/src/cairo-win32-font.c @@ -1355,6 +1355,7 @@ CLEANUP_FONT: } const cairo_scaled_font_backend_t cairo_win32_scaled_font_backend = { + CAIRO_FONT_TYPE_WIN32, _cairo_win32_scaled_font_create_toy, _cairo_win32_scaled_font_fini, _cairo_win32_scaled_font_glyph_init, diff --git a/src/cairoint.h b/src/cairoint.h index 401114cb7..a1978a90d 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -509,6 +509,8 @@ typedef enum _cairo_scaled_glyph_info { } cairo_scaled_glyph_info_t; struct _cairo_scaled_font_backend { + cairo_font_type_t type; + cairo_status_t (*create_toy) (cairo_toy_font_face_t *toy_face, const cairo_matrix_t *font_matrix,