summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2005-05-07 18:05:17 +0000
committerOwen Taylor <otaylor@src.gnome.org>2005-05-07 18:05:17 +0000
commite174de1f25a84cae71518bfc5ac0f82e4cda964e (patch)
tree9d28624c016a505aaac889bda493b25f08cda47f
parentcdc77f57773bfb4639f15b77a14736658a3d9926 (diff)
downloadpango-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--ChangeLog6
-rw-r--r--ChangeLog.pre-1-106
-rw-r--r--examples/cairosimple.c19
-rw-r--r--examples/cairoview.c54
-rw-r--r--pango/pangocairo-fcfont.c4
-rw-r--r--pango/pangocairo-fontmap.c12
-rw-r--r--pango/pangocairo-render.c20
7 files changed, 71 insertions, 50 deletions
diff --git a/ChangeLog b/ChangeLog
index 98e77f1a..98c6936c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);