_cairo_user_scaled_font_create_recording_context (const cairo_user_scaled_font_t *scaled_font,
if (!face->scaled_font_methods.render_color_glyph && !face->scaled_font_methods.render_glyph)
recording_surface = _cairo_user_scaled_font_create_recording_surface (scaled_font, FALSE, foreground_color);
recording_surface = _cairo_user_scaled_font_create_recording_surface (scaled_font, TRUE, foreground_color);
cr = _cairo_user_scaled_font_create_recording_context (scaled_font, recording_surface, TRUE);
foreground_used = scaled_font->foreground_marker_used || scaled_font->foreground_colors_used;
recording_surface = _cairo_user_scaled_font_create_recording_surface (scaled_font, FALSE, foreground_color);
cr = _cairo_user_scaled_font_create_recording_context (scaled_font, recording_surface, FALSE);
status = _cairo_recording_surface_get_bbox ((cairo_recording_surface_t *) recording_surface,
extents.x_advance = _cairo_lround (extents.x_advance / scaled_font->snap_x_scale) * scaled_font->snap_x_scale;
extents.y_advance = _cairo_lround (extents.y_advance / scaled_font->snap_y_scale) * scaled_font->snap_y_scale;
assert (info == CAIRO_SCALED_GLYPH_INFO_COLOR_SURFACE || info == CAIRO_SCALED_GLYPH_INFO_SURFACE);
status = _cairo_recording_surface_replay_with_foreground_color (scaled_glyph->recording_surface,
if (!scaled_glyph->recording_surface || (info & CAIRO_SCALED_GLYPH_INFO_RECORDING_SURFACE)) {
status = _cairo_user_scaled_glyph_init_record_glyph (scaled_font, scaled_glyph, foreground_color);
status = _cairo_scaled_font_register_placeholder_and_unlock_font_map (&user_scaled_font->base);
recording_surface = _cairo_user_scaled_font_create_recording_surface (user_scaled_font, FALSE, NULL);
cr = _cairo_user_scaled_font_create_recording_context (user_scaled_font, recording_surface, FALSE);