[cairo-commit]
cairo/test fill-and-stroke.c, 1.1, 1.2 get-and-set.c, 1.2, 1.3
Carl Worth
commit at pdx.freedesktop.org
Tue Apr 26 12:38:08 PDT 2005
- Previous message: [cairo-commit] cairo ChangeLog,1.525,1.526 TODO,1.46,1.47
- Next message: [cairo-commit]
cairo/src Makefile.am, 1.45, 1.46 cairo-arc-private.h,
NONE, 1.1 cairo-arc.c, NONE, 1.1 cairo-ft-font.c, 1.55,
1.56 cairo-gstate-private.h, 1.5, 1.6 cairo-gstate.c, 1.113,
1.114 cairo-path-data-private.h, 1.3, 1.4 cairo-path-data.c,
1.2, 1.3 cairo-path.c, 1.24, 1.25 cairo-private.h, 1.1,
1.2 cairo.c, 1.80, 1.81 cairo.h, 1.103, 1.104 cairoint.h,
1.128, 1.129
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: cworth
Update of /cvs/cairo/cairo/test
In directory gabe:/tmp/cvs-serv6704/test
Modified Files:
fill-and-stroke.c get-and-set.c
Log Message:
Originally: 2005-04-19 Carl Worth <cworth at cworth.org>
* src/cairo.h: Add cairo_stroke_preserve, cairo_fill_preserve,
and cairo_clip_preserve.
* src/cairoint.h:
* src/cairo-gstate-private.h:
* src/cairo-gstate.c: Rip the path out of cairo_gstate_t.
* src/cairo-private.h: Add path to cairo_t.
* src/cairo.c: Bring in most of the path code that used to live in
cairo-gstate.c
* src/Makefile.am:
* src/cairo-arc-private.h:
* src/cairo-arc.c: Move arc generation code into its own file.
* src/cairo-path-data-private.h:
* src/cairo-path-data.c: Accept path+ctm_inverse+tolerance instead
of gstate. Absorb flattening and device space->user space
conversion that used to be in _cairo_gstate_intepret_path.
* src/cairo-path.c: Prefer cairo_fixed_t parameters over
ciaro_point_t for cross-file interfaces.
* src/cairo-ft-font.c: Track changes in _cairo_path_fixed
interfaces.
* test/fill-and-stroke.c: (draw): Port to use cairo_fill_preserve
rather than cairo_save/cairo_restore which no longer work for
saving the path.
* test/get-and-set.c: (settings_set), (settings_get),
(settings_equal): Remove get and set of current point since it is
no longer affected by cairo_save and cairo_restore. Add get and
set testing for cairo_matrix_t.
Index: fill-and-stroke.c
===================================================================
RCS file: /cvs/cairo/cairo/test/fill-and-stroke.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- fill-and-stroke.c 18 Apr 2005 12:25:57 -0000 1.1
+++ fill-and-stroke.c 26 Apr 2005 19:38:06 -0000 1.2
@@ -38,10 +38,8 @@
draw (cairo_t *cr, int width, int height)
{
cairo_rectangle (cr, PAD, PAD, SIZE, SIZE);
- cairo_save (cr);
cairo_set_source_rgb (cr, 0, 0, 1);
- cairo_fill (cr);
- cairo_restore (cr);
+ cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 1, 0, 0);
cairo_stroke (cr);
@@ -51,9 +49,7 @@
PAD + SIZE / 2, PAD + SIZE / 2,
SIZE / 2,
0, 2 * M_PI);
- cairo_save (cr);
- cairo_fill (cr);
- cairo_restore (cr);
+ cairo_fill_preserve (cr);
cairo_set_source_rgb (cr, 0, 0, 1);
cairo_stroke (cr);
Index: get-and-set.c
===================================================================
RCS file: /cvs/cairo/cairo/test/get-and-set.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- get-and-set.c 29 Mar 2005 08:02:19 -0000 1.2
+++ get-and-set.c 26 Apr 2005 19:38:06 -0000 1.3
@@ -34,14 +34,12 @@
typedef struct {
cairo_operator_t operator;
double tolerance;
- double point_x;
- double point_y;
cairo_fill_rule_t fill_rule;
double line_width;
cairo_line_cap_t line_cap;
cairo_line_join_t line_join;
double miter_limit;
- /* XXX: Add cairo_matrix_t here when it is exposed */
+ cairo_matrix_t matrix;
} settings_t;
/* Two sets of settings, no defaults */
@@ -49,24 +47,22 @@
{
CAIRO_OPERATOR_IN,
2.0,
- 12.3,
- 4.56,
CAIRO_FILL_RULE_EVEN_ODD,
7.7,
CAIRO_LINE_CAP_SQUARE,
CAIRO_LINE_JOIN_ROUND,
- 3.14
+ 3.14,
+ {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}
},
{
CAIRO_OPERATOR_ATOP,
5.25,
- 99.99,
- 0.001,
CAIRO_FILL_RULE_WINDING,
2.17,
CAIRO_LINE_CAP_ROUND,
CAIRO_LINE_JOIN_BEVEL,
- 1000.0
+ 1000.0,
+ {.1, .01, .001, .0001, .00001, .000001}
}
};
@@ -75,12 +71,12 @@
{
cairo_set_operator (cr, settings->operator);
cairo_set_tolerance (cr, settings->tolerance);
- cairo_move_to (cr, settings->point_x, settings->point_y);
cairo_set_fill_rule (cr, settings->fill_rule);
cairo_set_line_width (cr, settings->line_width);
cairo_set_line_cap (cr, settings->line_cap);
cairo_set_line_join (cr, settings->line_join);
cairo_set_miter_limit (cr, settings->miter_limit);
+ cairo_set_matrix (cr, &settings->matrix);
}
static void
@@ -88,21 +84,12 @@
{
settings->operator = cairo_get_operator (cr);
settings->tolerance = cairo_get_tolerance (cr);
- cairo_get_current_point (cr, &settings->point_x, &settings->point_y);
settings->fill_rule = cairo_get_fill_rule (cr);
settings->line_width = cairo_get_line_width (cr);
settings->line_cap = cairo_get_line_cap (cr);
settings->line_join = cairo_get_line_join (cr);
settings->miter_limit = cairo_get_miter_limit (cr);
-}
-
-/* Maximum error is one part of our fixed-point grid */
-#define EPSILON (1.0 / 65536.0)
-
-static int
-DOUBLES_WITHIN_EPSILON(double a, double b) {
- double delta = fabs(a - b);
- return delta < EPSILON;
+ cairo_get_matrix (cr, &settings->matrix);
}
static int
@@ -110,13 +97,17 @@
{
return (a->operator == b->operator &&
a->tolerance == b->tolerance &&
- DOUBLES_WITHIN_EPSILON (a->point_x, b->point_x) &&
- DOUBLES_WITHIN_EPSILON (a->point_y, b->point_y) &&
a->fill_rule == b->fill_rule &&
a->line_width == b->line_width &&
a->line_cap == b->line_cap &&
a->line_join == b->line_join &&
- a->miter_limit == b->miter_limit);
+ a->miter_limit == b->miter_limit &&
+ a->matrix.xx == b->matrix.xx &&
+ a->matrix.xy == b->matrix.xy &&
+ a->matrix.x0 == b->matrix.x0 &&
+ a->matrix.yx == b->matrix.yx &&
+ a->matrix.yy == b->matrix.yy &&
+ a->matrix.y0 == b->matrix.y0);
}
static cairo_test_status_t
- Previous message: [cairo-commit] cairo ChangeLog,1.525,1.526 TODO,1.46,1.47
- Next message: [cairo-commit]
cairo/src Makefile.am, 1.45, 1.46 cairo-arc-private.h,
NONE, 1.1 cairo-arc.c, NONE, 1.1 cairo-ft-font.c, 1.55,
1.56 cairo-gstate-private.h, 1.5, 1.6 cairo-gstate.c, 1.113,
1.114 cairo-path-data-private.h, 1.3, 1.4 cairo-path-data.c,
1.2, 1.3 cairo-path.c, 1.24, 1.25 cairo-private.h, 1.1,
1.2 cairo.c, 1.80, 1.81 cairo.h, 1.103, 1.104 cairoint.h,
1.128, 1.129
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the cairo-commit
mailing list