diff options
author | Owen Taylor <otaylor@redhat.com> | 2005-05-07 18:05:17 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2005-05-07 18:05:17 +0000 |
commit | e174de1f25a84cae71518bfc5ac0f82e4cda964e (patch) | |
tree | 9d28624c016a505aaac889bda493b25f08cda47f | |
parent | cdc77f57773bfb4639f15b77a14736658a3d9926 (diff) | |
download | pango-e174de1f25a84cae71518bfc5ac0f82e4cda964e.tar.gz |
Update for Cairo API changes.
2005-05-07 Owen Taylor <otaylor@redhat.com>
* pango/pangocairo-fontmap.c pango/pangocairo-render.c
examples/cairosimple.c pango/pangocairo-fcfont.c
examples/cairoview.c: Update for Cairo API changes.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.pre-1-10 | 6 | ||||
-rw-r--r-- | examples/cairosimple.c | 19 | ||||
-rw-r--r-- | examples/cairoview.c | 54 | ||||
-rw-r--r-- | pango/pangocairo-fcfont.c | 4 | ||||
-rw-r--r-- | pango/pangocairo-fontmap.c | 12 | ||||
-rw-r--r-- | pango/pangocairo-render.c | 20 |
7 files changed, 71 insertions, 50 deletions
@@ -1,3 +1,9 @@ +2005-05-07 Owen Taylor <otaylor@redhat.com> + + * pango/pangocairo-fontmap.c pango/pangocairo-render.c + examples/cairosimple.c pango/pangocairo-fcfont.c + examples/cairoview.c: Update for Cairo API changes. + 2005-04-29 Owen Taylor <otaylor@redhat.com> * pango/pangocairo-fcfont.c (pango_cairo_fc_font_get_glyph_extents): diff --git a/ChangeLog.pre-1-10 b/ChangeLog.pre-1-10 index 98e77f1a..98c6936c 100644 --- a/ChangeLog.pre-1-10 +++ b/ChangeLog.pre-1-10 @@ -1,3 +1,9 @@ +2005-05-07 Owen Taylor <otaylor@redhat.com> + + * pango/pangocairo-fontmap.c pango/pangocairo-render.c + examples/cairosimple.c pango/pangocairo-fcfont.c + examples/cairoview.c: Update for Cairo API changes. + 2005-04-29 Owen Taylor <otaylor@redhat.com> * pango/pangocairo-fcfont.c (pango_cairo_fc_font_get_glyph_extents): diff --git a/examples/cairosimple.c b/examples/cairosimple.c index 5ac00b39..27aaf044 100644 --- a/examples/cairosimple.c +++ b/examples/cairosimple.c @@ -35,7 +35,7 @@ draw_text (cairo_t *cr) /* Gradient from red at angle == 60 to blue at angle == 300 */ red = (1 + cos ((angle - 60) * G_PI / 180.)) / 2; - cairo_set_rgb_color (cr, red, 0, 1.0 - red); + cairo_set_source_rgb (cr, red, 0, 1.0 - red); cairo_rotate (cr, angle * G_PI / 180.); @@ -58,6 +58,7 @@ int main (int argc, char **argv) cairo_t *cr; char *filename; cairo_status_t status; + cairo_surface_t *surface; if (argc != 2) { @@ -67,17 +68,19 @@ int main (int argc, char **argv) filename = argv[1]; - cr = cairo_create(); - cairo_set_target_image_no_data (cr, - CAIRO_FORMAT_ARGB32, - 2 * RADIUS, 2 * RADIUS); + surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, + 2 * RADIUS, 2 * RADIUS); + cr = cairo_create (surface); + - cairo_set_rgb_color (cr, 1.0, 1.0, 1.0); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); cairo_rectangle (cr, 0, 0, 2 * RADIUS, 2 * RADIUS); cairo_fill (cr); draw_text (cr); + cairo_destroy (cr); - status = cairo_surface_write_to_png (cairo_get_target_surface (cr), filename); + status = cairo_surface_write_to_png (surface, filename); + cairo_surface_destroy (surface); if (status != CAIRO_STATUS_SUCCESS) { @@ -85,7 +88,5 @@ int main (int argc, char **argv) return 1; } - cairo_destroy (cr); - return 0; } diff --git a/examples/cairoview.c b/examples/cairoview.c index 96c39886..356efd95 100644 --- a/examples/cairoview.c +++ b/examples/cairoview.c @@ -61,7 +61,7 @@ do_cairo_render (PangoLayout *layout, if (show_borders) { PangoRectangle ink, logical; - double lw = cairo_current_line_width (cr); + double lw = cairo_get_line_width (cr); pango_layout_get_extents (layout, &ink, &logical); @@ -94,27 +94,27 @@ do_cairo_transform (PangoContext *context, gpointer data) { RenderData *render_data = data; - cairo_matrix_t *cairo_matrix = cairo_matrix_create (); + cairo_matrix_t cairo_matrix; if (matrix) { - cairo_matrix_set_affine (cairo_matrix, - matrix->xx, matrix->yx, - matrix->xy, matrix->yy, - matrix->x0 + render_data->x_offset, - matrix->y0 + render_data->y_offset); + cairo_matrix.xx = matrix->xx; + cairo_matrix.yx = matrix->yx; + cairo_matrix.xy = matrix->xy; + cairo_matrix.yy = matrix->yy; + cairo_matrix.x0 = matrix->x0; + cairo_matrix.y0 = matrix->y0; } else { - cairo_matrix_set_affine (cairo_matrix, - 1.0, 0, - 0, 1.0, - render_data->x_offset, - render_data->y_offset); + cairo_matrix_init_identity (&cairo_matrix); } - cairo_set_matrix (render_data->cr, cairo_matrix); - cairo_matrix_destroy (cairo_matrix); + cairo_matrix_translate (&cairo_matrix, + render_data->x_offset, + render_data->y_offset); + + cairo_set_matrix (render_data->cr, &cairo_matrix); pango_context_set_matrix (context, matrix); pango_cairo_update_context (render_data->cr, context); @@ -124,6 +124,7 @@ void update () { RenderData render_data; + cairo_surface_t *surface; cairo_t *cr; Pixmap pixmap; GC gc; @@ -135,13 +136,14 @@ update () /* Create a temporary pixmap and a Cairo context pointing to it */ extents = pixman_region_extents (update_region); - pixmap = XCreatePixmap (display, window, - extents->x2 - extents->x1, - extents->y2 - extents->y1, - DefaultDepth (display, screen)); + surface = cairo_xlib_surface_create_for_pixmap_with_visual (display, + pixmap, + DefaultVisual (display, screen)); + - cr = render_data.cr = cairo_create(); - cairo_set_target_drawable (cr, display, pixmap); + cr = render_data.cr = cairo_create (surface); + cairo_surface_destroy (surface); + render_data.x_offset = - extents->x1; render_data.y_offset = - extents->y1; @@ -164,11 +166,11 @@ update () } cairo_clip (cr); - cairo_set_rgb_color (cr, 1.0, 1.0, 1.0); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); cairo_paint (cr); /* Draw the text in black */ - cairo_set_rgb_color (cr, 0.0, 0.0, 0.0); + cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); do_output (context, do_cairo_render, do_cairo_transform, &render_data, NULL, NULL); cairo_destroy (cr); @@ -209,6 +211,7 @@ int main (int argc, char **argv) RenderData render_data; unsigned int quit_keycode; unsigned int borders_keycode; + cairo_surface_t *surface; g_type_init(); @@ -222,7 +225,12 @@ int main (int argc, char **argv) fontmap = pango_cairo_font_map_get_default (); context = pango_cairo_font_map_create_context (PANGO_CAIRO_FONT_MAP (fontmap)); - render_data.cr = cairo_create (); + /* This is annoying ... we have to create a temporary surface just to + * get the extents of the text. + */ + surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 1, 1); + render_data.cr = cairo_create (surface); + cairo_surface_destroy (surface); render_data.x_offset = 0; render_data.y_offset = 0; do_output (context, NULL, do_cairo_transform, &render_data, &width, &height); diff --git a/pango/pangocairo-fcfont.c b/pango/pangocairo-fcfont.c index 7b2d9243..f14e8e9a 100644 --- a/pango/pangocairo-fcfont.c +++ b/pango/pangocairo-fcfont.c @@ -121,7 +121,7 @@ pango_cairo_fc_font_install (PangoCairoFont *font, cairo_set_font_face (cr, pango_cairo_fc_font_get_font_face (font)); - cairo_transform_font (cr, &cffont->font_matrix); + cairo_set_font_matrix (cr, &cffont->font_matrix); } static void @@ -132,7 +132,6 @@ cairo_font_iface_init (PangoCairoFontIface *iface) G_DEFINE_TYPE_WITH_CODE (PangoCairoFcFont, pango_cairo_fc_font, PANGO_TYPE_FC_FONT, { G_IMPLEMENT_INTERFACE (PANGO_TYPE_CAIRO_FONT, cairo_font_iface_init) }); - static void pango_cairo_fc_font_finalize (GObject *object) { @@ -152,7 +151,6 @@ pango_cairo_fc_font_get_glyph_extents (PangoFont *font, PangoRectangle *ink_rect, PangoRectangle *logical_rect) { - PangoCairoFcFont *cffont = PANGO_CAIRO_FC_FONT (font); cairo_scaled_font_t *scaled_font; cairo_text_extents_t extents; cairo_glyph_t cairo_glyph; diff --git a/pango/pangocairo-fontmap.c b/pango/pangocairo-fontmap.c index f448e3d9..f8cd2ab8 100644 --- a/pango/pangocairo-fontmap.c +++ b/pango/pangocairo-fontmap.c @@ -215,11 +215,13 @@ pango_cairo_update_context (cairo_t *cr, g_return_if_fail (cr != NULL); g_return_if_fail (PANGO_IS_CONTEXT (context)); - cairo_current_matrix (cr, &cairo_matrix); - cairo_matrix_get_affine (&cairo_matrix, - &pango_matrix.xx, &pango_matrix.yx, - &pango_matrix.xy, &pango_matrix.yy, - &pango_matrix.x0, &pango_matrix.y0); + cairo_get_matrix (cr, &cairo_matrix); + pango_matrix.xx = cairo_matrix.xx; + pango_matrix.yx = cairo_matrix.yx; + pango_matrix.xy = cairo_matrix.xy; + pango_matrix.yy = cairo_matrix.yy; + pango_matrix.x0 = cairo_matrix.x0; + pango_matrix.y0 = cairo_matrix.y0; pango_context_set_matrix (context, &pango_matrix); } diff --git a/pango/pangocairo-render.c b/pango/pangocairo-render.c index 00c1bdc5..9a1048ce 100644 --- a/pango/pangocairo-render.c +++ b/pango/pangocairo-render.c @@ -50,10 +50,10 @@ set_color (PangoCairoRenderer *crenderer, PangoColor *color = pango_renderer_get_color (PANGO_RENDERER (crenderer), part); if (color) - cairo_set_rgb_color (crenderer->cr, - color->red / 65535., - color->green / 65535., - color->blue / 65535.); + cairo_set_source_rgb (crenderer->cr, + color->red / 65535., + color->green / 65535., + color->blue / 65535.); } static void @@ -285,7 +285,7 @@ pango_cairo_show_glyph_string (cairo_t *cr, crenderer->cr = cr; crenderer->do_path = FALSE; - cairo_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); + cairo_get_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); pango_renderer_draw_glyphs (renderer, font, glyphs, 0, 0); @@ -328,7 +328,7 @@ pango_cairo_show_layout_line (cairo_t *cr, crenderer->cr = cr; crenderer->do_path = FALSE; - cairo_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); + cairo_get_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); pango_renderer_draw_layout_line (renderer, line, 0, 0); @@ -371,7 +371,7 @@ pango_cairo_show_layout (cairo_t *cr, crenderer->cr = cr; crenderer->do_path = FALSE; - cairo_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); + cairo_get_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); pango_renderer_draw_layout (renderer, layout, 0, 0); @@ -413,7 +413,7 @@ pango_cairo_glyph_string_path (cairo_t *cr, crenderer->cr = cr; crenderer->do_path = TRUE; - cairo_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); + cairo_get_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); pango_renderer_draw_glyphs (renderer, font, glyphs, 0, 0); @@ -455,7 +455,7 @@ pango_cairo_layout_line_path (cairo_t *cr, crenderer->cr = cr; crenderer->do_path = TRUE; - cairo_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); + cairo_get_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); pango_renderer_draw_layout_line (renderer, line, 0, 0); @@ -497,7 +497,7 @@ pango_cairo_layout_path (cairo_t *cr, crenderer->cr = cr; crenderer->do_path = TRUE; - cairo_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); + cairo_get_current_point (cr, &crenderer->x_offset, &crenderer->y_offset); pango_renderer_draw_layout (renderer, layout, 0, 0); |