Rename and re-order the cairo_operator_t enum to names that abbreviate less and are easier to understand, (eg. CAIRO_OPERATOR_DEST_OVER instead of CAIRO_OPEERATOR_OVER_REVERSE).

This commit is contained in:
Carl Worth 2005-05-06 13:26:16 +00:00
parent d6fc5ee5e9
commit a790a2ea79
10 changed files with 99 additions and 48 deletions

View file

@ -1,3 +1,23 @@
2005-05-06 Carl Worth <cworth@cworth.org>
* src/cairo-glitz-surface.c: (_glitz_operator),
(_cairo_glitz_surface_fill_rectangles):
* src/cairo-gstate.c: (_cairo_gstate_mask):
* src/cairo-image-surface.c: (_pixman_operator),
(_cairo_image_surface_composite_trapezoids):
* src/cairo-ps-surface.c: (_cairo_ps_surface_erase),
(_cairo_ps_surface_copy_page):
* src/cairo-surface.c: (_cairo_surface_create_similar_solid):
* src/cairo-xlib-surface.c: (_render_operator):
* src/cairo.h:
* test/cairo-test.c: (cairo_test_for_target):
* test/mask.c: (mask_polygon), (draw):
Rename and re-order the cairo_operator_t enum to names that
abbreviate less and are easier to understand,
(eg. CAIRO_OPERATOR_DEST_OVER instead of
CAIRO_OPEERATOR_OVER_REVERSE).
2005-05-06 Carl Worth <cworth@cworth.org>
* src/cairo.c: (cairo_create), (cairo_save), (cairo_get_target):

View file

@ -399,32 +399,49 @@ _glitz_operator (cairo_operator_t op)
switch (op) {
case CAIRO_OPERATOR_CLEAR:
return GLITZ_OPERATOR_CLEAR;
case CAIRO_OPERATOR_SRC:
case CAIRO_OPERATOR_SOURCE:
return GLITZ_OPERATOR_SRC;
case CAIRO_OPERATOR_DST:
return GLITZ_OPERATOR_DST;
case CAIRO_OPERATOR_OVER_REVERSE:
return GLITZ_OPERATOR_OVER_REVERSE;
case CAIRO_OPERATOR_OVER:
return GLITZ_OPERATOR_OVER;
case CAIRO_OPERATOR_IN:
return GLITZ_OPERATOR_IN;
case CAIRO_OPERATOR_IN_REVERSE:
return GLITZ_OPERATOR_IN_REVERSE;
case CAIRO_OPERATOR_OUT:
return GLITZ_OPERATOR_OUT;
case CAIRO_OPERATOR_OUT_REVERSE:
return GLITZ_OPERATOR_OUT_REVERSE;
case CAIRO_OPERATOR_ATOP:
return GLITZ_OPERATOR_ATOP;
case CAIRO_OPERATOR_ATOP_REVERSE:
case CAIRO_OPERATOR_DEST:
return GLITZ_OPERATOR_DST;
case CAIRO_OPERATOR_DEST_OVER:
return GLITZ_OPERATOR_OVER_REVERSE;
case CAIRO_OPERATOR_DEST_IN:
return GLITZ_OPERATOR_IN_REVERSE;
case CAIRO_OPERATOR_DEST_OUT:
return GLITZ_OPERATOR_OUT_REVERSE;
case CAIRO_OPERATOR_DEST_ATOP:
return GLITZ_OPERATOR_ATOP_REVERSE;
case CAIRO_OPERATOR_XOR:
return GLITZ_OPERATOR_XOR;
case CAIRO_OPERATOR_ADD:
return GLITZ_OPERATOR_ADD;
case CAIRO_OPERATOR_OVER:
default:
case CAIRO_OPERATOR_SATURATE:
/* XXX: OVER is definitely not the right thing here, (but it
* is what the original glitz backend code has always
* done). Cairo's SATURATE operator is the native GL
* compositing mode, (from my understanding). So why isn't
* there a GLITZ_OPERATOR_SATURATE for us to use here? */
return GLITZ_OPERATOR_OVER;
}
ASSERT_NOT_REACHED;
/* Something's very broken if this line of code can be reached, so
we want to return something that would give a noticeably
incorrect result. The XOR operator seems so rearely desired
that it should fit the bill here. */
return CAIRO_OPERATOR_XOR;
}
static glitz_status_t
@ -888,7 +905,7 @@ _cairo_glitz_surface_fill_rectangles (void *abstract_dst,
{
cairo_glitz_surface_t *dst = abstract_dst;
if (op == CAIRO_OPERATOR_SRC)
if (op == CAIRO_OPERATOR_SOURCE)
{
glitz_color_t glitz_color;

View file

@ -924,7 +924,7 @@ _cairo_gstate_mask (cairo_gstate_t *gstate,
if (intermediate == NULL)
return CAIRO_STATUS_NO_MEMORY;
status = _cairo_surface_composite (CAIRO_OPERATOR_SRC,
status = _cairo_surface_composite (CAIRO_OPERATOR_SOURCE,
mask, NULL, intermediate,
extents.x, extents.y,
0, 0,

View file

@ -442,32 +442,40 @@ _cairo_image_surface_set_attributes (cairo_image_surface_t *surface,
return status;
}
/* XXX: I think we should fix pixman to match the names/order of the
* cairo operators, but that will likely be better done at the same
* time the X server is ported to pixman, (which will change a lot of
* things in pixman I think).
*/
static pixman_operator_t
_pixman_operator (cairo_operator_t operator)
{
switch (operator) {
case CAIRO_OPERATOR_CLEAR:
return PIXMAN_OPERATOR_CLEAR;
case CAIRO_OPERATOR_SRC:
case CAIRO_OPERATOR_SOURCE:
return PIXMAN_OPERATOR_SRC;
case CAIRO_OPERATOR_DST:
return PIXMAN_OPERATOR_DST;
case CAIRO_OPERATOR_OVER:
return PIXMAN_OPERATOR_OVER;
case CAIRO_OPERATOR_OVER_REVERSE:
return PIXMAN_OPERATOR_OVER_REVERSE;
case CAIRO_OPERATOR_IN:
return PIXMAN_OPERATOR_IN;
case CAIRO_OPERATOR_IN_REVERSE:
return PIXMAN_OPERATOR_IN_REVERSE;
case CAIRO_OPERATOR_OUT:
return PIXMAN_OPERATOR_OUT;
case CAIRO_OPERATOR_OUT_REVERSE:
return PIXMAN_OPERATOR_OUT_REVERSE;
case CAIRO_OPERATOR_ATOP:
return PIXMAN_OPERATOR_ATOP;
case CAIRO_OPERATOR_ATOP_REVERSE:
case CAIRO_OPERATOR_DEST:
return PIXMAN_OPERATOR_DST;
case CAIRO_OPERATOR_DEST_OVER:
return PIXMAN_OPERATOR_OVER_REVERSE;
case CAIRO_OPERATOR_DEST_IN:
return PIXMAN_OPERATOR_IN_REVERSE;
case CAIRO_OPERATOR_DEST_OUT:
return PIXMAN_OPERATOR_OUT_REVERSE;
case CAIRO_OPERATOR_DEST_ATOP:
return PIXMAN_OPERATOR_ATOP_REVERSE;
case CAIRO_OPERATOR_XOR:
return PIXMAN_OPERATOR_XOR;
case CAIRO_OPERATOR_ADD:
@ -615,7 +623,7 @@ _cairo_image_surface_composite_trapezoids (cairo_operator_t operator,
* somehow. */
status = _cairo_image_surface_set_attributes (src, &attributes);
if (CAIRO_OK (status))
pixman_composite_trapezoids (operator,
pixman_composite_trapezoids (_pixman_operator (operator),
src->pixman_image,
dst->pixman_image,
render_src_x + attributes.x_offset,

View file

@ -147,7 +147,7 @@ static void
_cairo_ps_surface_erase (cairo_ps_surface_t *surface)
{
_cairo_surface_fill_rectangle (&surface->image->base,
CAIRO_OPERATOR_SRC,
CAIRO_OPERATOR_SOURCE,
CAIRO_COLOR_TRANSPARENT,
0, 0,
surface->image->width,
@ -219,7 +219,7 @@ _cairo_ps_surface_copy_page (void *abstract_surface)
_cairo_pattern_init_solid (&white_pattern, CAIRO_COLOR_WHITE);
_cairo_surface_composite (CAIRO_OPERATOR_OVER_REVERSE,
_cairo_surface_composite (CAIRO_OPERATOR_DEST_OVER,
&white_pattern.base,
NULL,
&surface->image->base,

View file

@ -219,7 +219,7 @@ _cairo_surface_create_similar_solid (cairo_surface_t *other,
surface = cairo_image_surface_create (format, width, height);
status = _cairo_surface_fill_rectangle (surface,
CAIRO_OPERATOR_SRC, color,
CAIRO_OPERATOR_SOURCE, color,
0, 0, width, height);
if (status) {
cairo_surface_destroy (surface);

View file

@ -600,26 +600,29 @@ _render_operator (cairo_operator_t operator)
switch (operator) {
case CAIRO_OPERATOR_CLEAR:
return PictOpClear;
case CAIRO_OPERATOR_SRC:
case CAIRO_OPERATOR_SOURCE:
return PictOpSrc;
case CAIRO_OPERATOR_DST:
return PictOpDst;
case CAIRO_OPERATOR_OVER:
return PictOpOver;
case CAIRO_OPERATOR_OVER_REVERSE:
return PictOpOverReverse;
case CAIRO_OPERATOR_IN:
return PictOpIn;
case CAIRO_OPERATOR_IN_REVERSE:
return PictOpInReverse;
case CAIRO_OPERATOR_OUT:
return PictOpOut;
case CAIRO_OPERATOR_OUT_REVERSE:
return PictOpOutReverse;
case CAIRO_OPERATOR_ATOP:
return PictOpAtop;
case CAIRO_OPERATOR_ATOP_REVERSE:
case CAIRO_OPERATOR_DEST:
return PictOpDst;
case CAIRO_OPERATOR_DEST_OVER:
return PictOpOverReverse;
case CAIRO_OPERATOR_DEST_IN:
return PictOpInReverse;
case CAIRO_OPERATOR_DEST_OUT:
return PictOpOutReverse;
case CAIRO_OPERATOR_DEST_ATOP:
return PictOpAtopReverse;
case CAIRO_OPERATOR_XOR:
return PictOpXor;
case CAIRO_OPERATOR_ADD:

View file

@ -228,18 +228,21 @@ cairo_pop_group (cairo_t *cr);
/* Modify state */
typedef enum cairo_operator {
typedef enum cairo_operator {
CAIRO_OPERATOR_CLEAR,
CAIRO_OPERATOR_SRC,
CAIRO_OPERATOR_DST,
CAIRO_OPERATOR_SOURCE,
CAIRO_OPERATOR_OVER,
CAIRO_OPERATOR_OVER_REVERSE,
CAIRO_OPERATOR_IN,
CAIRO_OPERATOR_IN_REVERSE,
CAIRO_OPERATOR_OUT,
CAIRO_OPERATOR_OUT_REVERSE,
CAIRO_OPERATOR_ATOP,
CAIRO_OPERATOR_ATOP_REVERSE,
CAIRO_OPERATOR_DEST,
CAIRO_OPERATOR_DEST_OVER,
CAIRO_OPERATOR_DEST_IN,
CAIRO_OPERATOR_DEST_OUT,
CAIRO_OPERATOR_DEST_ATOP,
CAIRO_OPERATOR_XOR,
CAIRO_OPERATOR_ADD,
CAIRO_OPERATOR_SATURATE

View file

@ -271,7 +271,7 @@ cairo_test_for_target (cairo_test_t *test,
cairo_save (cr);
cairo_set_source_rgba (cr, 0, 0, 0, 0);
cairo_set_operator (cr, CAIRO_OPERATOR_SRC);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_paint (cr);
cairo_restore (cr);

View file

@ -80,7 +80,7 @@ mask_polygon (cairo_t *cr, int x, int y)
cairo_save (cr2);
cairo_set_source_rgba (cr2, 0, 0, 0, 0); /* transparent */
cairo_set_operator (cr2, CAIRO_OPERATOR_SRC);
cairo_set_operator (cr2, CAIRO_OPERATOR_SOURCE);
cairo_paint (cr2);
cairo_restore (cr2);
@ -212,7 +212,7 @@ draw (cairo_t *cr, int width, int height)
/* Clear area we are going to be drawing onto */
cairo_save (cr2);
cairo_set_source_rgba (cr2, 0, 0, 0, 0); /* transparent */
cairo_set_operator (cr2, CAIRO_OPERATOR_SRC);
cairo_set_operator (cr2, CAIRO_OPERATOR_SOURCE);
cairo_rectangle (cr2, x, y, WIDTH, HEIGHT);
cairo_fill (cr2);
cairo_restore (cr2);