mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-04-20 01:20:41 +02:00
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:
parent
d6fc5ee5e9
commit
a790a2ea79
10 changed files with 99 additions and 48 deletions
20
ChangeLog
20
ChangeLog
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
17
src/cairo.h
17
src/cairo.h
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue