summaryrefslogtreecommitdiff
path: root/src/cairo-quartz-private.h
AgeCommit message (Collapse)AuthorFilesLines
2011-04-21Remove quartz-image extents.Jeff Muizelaar1-1/+1
We never used the x,y portion of the extents so we might as well take it out.
2010-10-13quartz: Move drawing state out of surfaceAndrea Canciani1-12/+0
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
2010-10-13quartz: Unify DO_SOLID and DO_PATTERNAndrea Canciani1-3/+1
Both DO_SOLID and DO_PATTERN setup the underlying CGContext to directly use the chosen color/pattern when filling and stroking, thus require no additional drawing operations and can share the same drawing code.
2010-10-13quartz: Set operator when setting up sourceAndrea Canciani1-2/+0
Share some code between the drawing functions by saving the state and setting the operator when setting up the source and by restoring the state during teardown. Based on a patch by Robert O'Callahan <robert@ocallahan.org>. See https://bugzilla.mozilla.org/show_bug.cgi?id=522859
2010-10-13quartz: Remove DO_NOTHING and DO_UNSUPPORTED actionsAndrea Canciani1-0/+9
DO_NOTHING and DO_UNSUPPORTED are not actual actions and are better handled by returning an appropriate cairo_int_status_t (and falling back, if needed).
2010-10-12quartz: Improve gradient consistencyAndrea Canciani1-0/+1
By keeping "virtual extents", quartz surfaces now keep track of the extents where they want the gradients to be consistent. This works across various API for surface creation and editing: - cairo_surface_create_for_rectangle - cairo_surface_create_similar + cairo_surface_set_device_offset - cairo_push_group/cairo_pop_group This method does not use clip extents, so it also makes gradient rasterization independent of clip/path extents.
2010-04-27Update FSF addressAndrea Canciani1-1/+1
I updated the Free Software Foundation address using the following script. for i in $(git grep Temple | cut -d: -f1 ) do sed -e 's/59 Temple Place[, -]* Suite 330, Boston, MA *02111-1307[, ]* USA/51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA/' -i "$i" done Fixes http://bugs.freedesktop.org/show_bug.cgi?id=21356
2010-04-04quartz: Define cairo_quartz_float_t and use instead of floatKristian Rietveld1-0/+6
On Mac OS 10.6 and newer cairo_quartz_float_t is defined to be a CGFloat, resolving issues with the 64-bit builds. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=25814
2009-07-23Remove clip handling from generic surface layer.Chris Wilson1-0/+2
Handling clip as part of the surface state, as opposed to being part of the operation state, is cumbersome and a hindrance to providing true proxy surface support. For example, the clip must be copied from the surface onto the fallback image, but this was forgotten causing undue hassle in each backend. Another example is the contortion the meta surface endures to ensure the clip is correctly recorded. By contrast passing the clip along with the operation is quite simple and enables us to write generic handlers for providing surface wrappers. (And in the future, we should be able to write more esoteric wrappers, e.g. automatic 2x FSAA, trivially.) In brief, instead of the surface automatically applying the clip before calling the backend, the backend can call into a generic helper to apply clipping. For raster surfaces, clip regions are handled automatically as part of the composite interface. For vector surfaces, a clip helper is introduced to replay and callback into an intersect_clip_path() function as necessary. Whilst this is not primarily a performance related change (the change should just move the computation of the clip from the moment it is applied by the user to the moment it is required by the backend), it is important to track any potential regression: ppc: Speedups ======== image-rgba evolution-20090607-0 1026085.22 0.18% -> 672972.07 0.77%: 1.52x speedup ▌ image-rgba evolution-20090618-0 680579.98 0.12% -> 573237.66 0.16%: 1.19x speedup ▎ image-rgba swfdec-fill-rate-4xaa-0 460296.92 0.36% -> 407464.63 0.42%: 1.13x speedup ▏ image-rgba swfdec-fill-rate-2xaa-0 128431.95 0.47% -> 115051.86 0.42%: 1.12x speedup ▏ Slowdowns ========= image-rgba firefox-periodic-table-0 56837.61 0.78% -> 66055.17 3.20%: 1.09x slowdown ▏
2008-09-20Make sure feature macros are checked using #if, not #ifdef; add a test for itBehdad Esfahbod1-6/+5
This is more robust to cases where people want to assign 0 to those variables. (win32/alternate build systems, etc)
2008-06-23Use #include "cairo-*." instead of #include <cairo-*.h>Behdad Esfahbod1-1/+1
The rule is simple: <x.h> for system / other project includes, "x.h" for local includes.
2008-04-01[cgfont] Add start of CGFont font backend to replace ATSUIVladimir Vukicevic1-0/+5
2008-03-17[quartz] Rename ATSUI font to Quartz fontVladimir Vukicevic1-11/+3
2008-03-07[quartz] Correctly handle gradients with non-identity pattern transformVladimir Vukicevic1-1/+2
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=14248
2008-02-25[quartz] Add quartz-image-surface typeVladimir Vukicevic1-2/+29
2008-01-15[quartz] Store the CGFontRef and reuse it for renderingVladimir Vukicevic1-0/+3
Previously the CGFontRef was recreated each time in show_glyphs; this caused the font to get re-embedded in any PDF files that were being generated through Quartz.
2007-08-22[Makefile.am] Add target sparse to run sparse static source code analyzerBehdad Esfahbod1-1/+1
There are still some bits not quite working.
2007-07-18[fixpt] Replace cairo_rectangle_int16_t with cairo_rectangle_int_tVladimir Vukicevic1-1/+1
Mostly s/cairo_rectangle_int16_t/cairo_rectangle_int_t/, as well as definitions to pick cairo_rectangle_int_t.
2007-06-08[quartz] fix DO_IMAGEVladimir Vukicevic1-1/+4
The implementation of DO_IMAGE leaks memory via a referenced surface, and wasn't applied for strokes and glyphs. This patch corrects those issues.
2007-03-06[quartz] rename remaining nquartz symbols to quartz.Brian Ewins1-3/+3
Renaming any nquartz symbols and files left to quartz.
2007-03-05[quartz,atsui] separate the quartz surface and atsui font backendBrian Ewins1-3/+5
Make it possible to use the --enable-quartz and --enable-atsui independently. Quartz on its own will use the ft font backend.
2007-02-20[quartz] Remove (disabled) support for rendering via AGL/CGGLVladimir Vukicevic1-10/+0
2007-02-20[quartz] rename NQUARTZ -> QUARTZ in definesVladimir Vukicevic1-1/+3
2007-02-20[quartz] Rename nquartz to quartzVladimir Vukicevic1-8/+22
2006-09-13[nquartz] Initial commit of native quartz surfaceVladimir Vukicevic1-0/+9
Inital commit of Native Quartz surface. The main missing functionality is mask() support (which is just a noop right now, except for the simple solid-alpha case).
2006-06-06Fix bogus cairo_rectangle_fixed_t to be cairo_rectangle_int16_t.Carl Worth1-1/+1
This rectangle has regular integer values, not fixed-point values. So the old name was horribly wrong and misleading, (and yes I think it was even I that had suggested it).
2006-05-04Rename cairo_rectangle_t to cairo_rectangle_fixed_t.Robert O'Callahan1-1/+1
This is in preparation for a later function addition for extracting clip rectangles from a cairo_t, (which will add a public cairo_rectangle_t).
2006-04-11Make the API more like Vlad's new API.#Anders Carlsson1-1/+1
2006-04-10Rework the quartz backend to not always hold an image but instead to create ↵Anders Carlsson1-6/+2
it on demand.#
2006-01-10Add cairo-quartz-private.hAnders Carlsson1-0/+61
If the destination surface is a quartz surface, get the clip mask from it. Added. Keep a copy of the clip mask around. (_cairo_surface_is_quartz): New function which determines if a given surface is a quartz surface.