From 1568c818dacf70463e4b71550bbf24d26f894b70 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Wed, 3 Sep 2003 07:14:18 +0000 Subject: [PATCH] Add implementation of cairo_get_matrix --- ChangeLog | 7 +++++++ src/cairo-gstate.c | 6 ++++++ src/cairo.c | 6 ++++++ src/cairo.h | 5 +---- src/cairo_gstate.c | 6 ++++++ src/cairoint.h | 3 +++ 6 files changed, 29 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index cb902f87a..534ced50a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2003-09-03 Carl Worth + + * src/cairo.h: Change cairo_get_matrix interface to accept a + cairo_matrix_t* rather than 6 double*. + + * src/cairo.c (cairo_get_matrix): Add implementation of cairo_get_matrix. + 2003-08-29 Carl Worth * src/cairo_surface.c (_cairo_surface_composite): Optimized case diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index c54e7d1fa..cb623c909 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -498,6 +498,12 @@ _cairo_gstate_get_miter_limit (cairo_gstate_t *gstate) return gstate->miter_limit; } +void +_cairo_gstate_get_matrix (cairo_gstate_t *gstate, cairo_matrix_t *matrix) +{ + cairo_matrix_copy (matrix, &gstate->ctm); +} + cairo_status_t _cairo_gstate_translate (cairo_gstate_t *gstate, double tx, double ty) { diff --git a/src/cairo.c b/src/cairo.c index ff4fe00d9..b76e262bc 100644 --- a/src/cairo.c +++ b/src/cairo.c @@ -688,6 +688,12 @@ cairo_get_miter_limit (cairo_t *cr) return _cairo_gstate_get_miter_limit (cr->gstate); } +void +cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix) +{ + _cairo_gstate_get_matrix (cr->gstate, matrix); +} + cairo_surface_t * cairo_get_target_surface (cairo_t *cr) { diff --git a/src/cairo.h b/src/cairo.h index 3b55be52d..026d2bdc0 100644 --- a/src/cairo.h +++ b/src/cairo.h @@ -370,10 +370,7 @@ cairo_get_miter_limit (cairo_t *cr); /* XXX: How to do cairo_get_dash??? Do we want to switch to a cairo_dash object? */ extern void __external_linkage -cairo_get_matrix (cairo_t *cr, - double *a, double *b, - double *c, double *d, - double *tx, double *ty); +cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix); extern cairo_surface_t * __external_linkage cairo_get_target_surface (cairo_t *cr); diff --git a/src/cairo_gstate.c b/src/cairo_gstate.c index c54e7d1fa..cb623c909 100644 --- a/src/cairo_gstate.c +++ b/src/cairo_gstate.c @@ -498,6 +498,12 @@ _cairo_gstate_get_miter_limit (cairo_gstate_t *gstate) return gstate->miter_limit; } +void +_cairo_gstate_get_matrix (cairo_gstate_t *gstate, cairo_matrix_t *matrix) +{ + cairo_matrix_copy (matrix, &gstate->ctm); +} + cairo_status_t _cairo_gstate_translate (cairo_gstate_t *gstate, double tx, double ty) { diff --git a/src/cairoint.h b/src/cairoint.h index 7e71e72a9..1c20df3b8 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -456,6 +456,9 @@ _cairo_gstate_set_miter_limit (cairo_gstate_t *gstate, double limit); extern double __internal_linkage _cairo_gstate_get_miter_limit (cairo_gstate_t *gstate); +extern void __internal_linkage +_cairo_gstate_get_matrix (cairo_gstate_t *gstate, cairo_matrix_t *matrix); + extern cairo_status_t __internal_linkage _cairo_gstate_translate (cairo_gstate_t *gstate, double tx, double ty);