Skip to content

Commit

Permalink
quartz: Move drawing state out of surface
Browse files Browse the repository at this point in the history
Some pattern types (gradients, surface patterns) require some
temporary information to be stored as "graphic state", because it
doesn't belong to CGContext. Previously all of this data was stored
inside the surface during the drawing operations, now it's in a
stack-allocated structure (of type cairo_quartz_drawing_state_t).
Based on a patch by Robert O'Callahan <robert@ocallahan.org>.
See https://bugzilla.mozilla.org/show_bug.cgi?id=522859
  • Loading branch information
Andrea Canciani committed Oct 12, 2010
1 parent bbaca95 commit 1061c80
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 83 deletions.
12 changes: 0 additions & 12 deletions src/cairo-quartz-private.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,18 +69,6 @@ typedef struct cairo_quartz_surface {
cairo_surface_clipper_t clipper;
cairo_rectangle_int_t extents;
cairo_rectangle_int_t virtual_extents;

/* These are stored while drawing operations are in place, set up
* by quartz_setup_source() and quartz_finish_source()
*/
cairo_quartz_action_t action;
CGAffineTransform sourceTransform;

CGImageRef sourceImage;
cairo_surface_t *sourceImageSurface;
CGRect sourceImageRect;

CGShadingRef sourceShading;
} cairo_quartz_surface_t;

typedef struct cairo_quartz_image_surface {
Expand Down
Loading

0 comments on commit 1061c80

Please sign in to comment.