Commit graph

1438 commits

Author SHA1 Message Date
Carl Worth
39eca22bfe Rework support in the surface backend for the five basic drawing operations (paint, mask, stroke, fill, and show_glyphs). Now, all 5 operations have backend functions, and all use a consistent convention for argument naming and ordering. The old fill_path has been replaced with a new fill. The old show_glyphs function was recently renamed to old_show_glyphs and has not yet been ported to the new show_glyphs, (so all backends have a NULL show_glyphs function). In fact, of the 5 new backend functions, fill is the only one that has an implementation in any backend. As part of this cleanup a new cairo_stroke_style_t object is introduced to capture the many settings unique to the stroke operation, (line_width, line_cap, line_join, miter_limit, dash, num_dashes, and dash_offset).
Track changes in surface backend from fill_path to fill.
Track the new canonical argument naming and ordering for the 5 drawing operations.
Move various stroke style settings into new cairo_stroke_style_t.
Drop NULL fill_path backend function which no longer exists.
2005-11-04 11:16:38 +00:00
Carl Worth
719334c52c Rename surface->backend->show_glyphs to surface->backend->old_show_glyphs.
Move show_glyphs fallback from gstate to surface where it belongs.
Reviewed by: keithp
2005-11-01 16:40:37 +00:00
Keith Packard
a3ae0aecc4 Clean up argument order for _fallback_stroke to match other functions 2005-11-01 10:33:34 +00:00
Carl Worth
a7228cc37a Originally 2005-10-28 Keith Packard <keithp@keithp.com>:
Remove pen_regular field from the gstate.
Move stroke fallback from gstate to surface where it belongs.
Eliminate dependence on cairo_gstate_t object.
Fix to include just cairo-clip-private.h rather than cairo-gstate.private.h.
2005-10-31 16:55:21 +00:00
Tor Lillqvist
3cae05c4c5 Call _cairo_scaled_glyph_set_path(). 2005-10-31 11:10:13 +00:00
Keith Packard
1a25220634 Use _cairo_pattern_get_extents in _fallback_paint to bound paint operators. 2005-10-28 21:00:42 +00:00
Keith Packard
83ff8ea194 Bound mask fallback operation by transformed mask and source. This should speed up any applications calling cairo_mask with a bounded source or mask operand. 2005-10-28 20:49:59 +00:00
Keith Packard
93cbc71a79 Split _cairo_operator_bounded into two separate functions _cairo_operator_bounded_by_mask and _cairo_operator_bound_by_source to distinguish between how operators use source and mask operands. 2005-10-28 20:41:22 +00:00
Carl Worth
1540504bd6 Fix leak of pattern (missing _cairo_pattern_fini).
Move mask fallback from gstate to surface where it belongs.
Temporarily export some previously private cairo_gstate functions, (soon to become private cairo_fallback functions).
2005-10-27 17:16:46 +00:00
Carl Worth
ce7b19fc34 Move paint fallback from gstate to surface where it belongs.
Add clip pointer to surface.
2005-10-27 15:06:53 +00:00
Carl Worth
e406f4b0f0 Add explicit NULLs for unimplmented backend functions to better document what might be improved here. 2005-10-25 16:02:08 +00:00
Carl Worth
8471ad29ab Add critical bug #4863 to the 1.0.4 roadmap. 2005-10-25 15:57:28 +00:00
Carl Worth
09114cc627 Add mention of suspected bug in PS backend. 2005-10-25 15:55:57 +00:00
Carl Worth
16d79e2129 Mark the composite-integer-translate-source test as now passing for the PS backend (6 to go).
Use fallbacks for any operation using a pattern other than a solid pattern, since it's the only type that will actually emit anything right now.
Add comments indicating these functions are not yet implemented.
2005-10-18 16:09:21 +00:00
Carl Worth
85abc42302 Mark the operator-source and trap-clip tests as now passing for the PS backend (7 to go).
Replace the surface->fallback_region with a page-level surface->fallback Boolean instead, since that's all it was being used as anyway.
Do nothing in the ps_output->fallback case.
Do nothing in the ! ps_output->fallback case.
Reviewed by: keithp
2005-10-18 15:58:32 +00:00
Carl Worth
c88dbd077a Added list of 9 remaining PS backend test suite failures to the 1.2.0 roadmap. 2005-10-18 12:41:01 +00:00
Carl Worth
d93767c6ee Add reference images for antialiasing modes which are basically not applicable to the PS output. 2005-10-18 12:04:41 +00:00
Carl Worth
99d02f2adc Add verified image for PS output for dash-offset-negative. 2005-10-13 21:04:28 +00:00
Carl Worth
4f97b2edb5 New function to create a snapshot copy of a pattern.
Port code to use _init_pattern_with_snapshot rather than _cairo_pattern_init_copy for all source and mask patterns.
New function to create a snapshot copy of a surface (still preliminary---no support for meta-surfaces or any other surface for which acquire_source_surface will fail).
Add new surface->is_snapshot and initialize to FALSE.
Assert that none of these surface-modifying functions are ever called with a snapshot surface.
Reviewed by: keithp, otaylor
2005-10-13 21:00:52 +00:00
Carl Worth
9d27993ced Add comment for obviously broken function. 2005-10-13 20:15:29 +00:00
Carl Worth
31a561e2c2 Push fill_path fallbacks down from gstate into the surface where all the other fallbacks are.
Add _cairo_surface_is_meta.
Add antialias to the fill_path meta-surface command.
Add an antialias parameter to the backend fill_path function.
Fix test description.
Reviewed by: keithp
2005-10-13 16:55:14 +00:00
Carl Worth
097f240c6d Fix indentation. 2005-10-13 07:33:07 +00:00
Carl Worth
d31d5db04f Increment libtool versioning to 5:0:3 in anticipation of 1.2.0 which will add interfaces. The motivation for this is to make the 1.1.1 release install a library which will be considered newer than 1.0.2.
Add a release-verify-soname-major check to verify that the soname major number is always 2 as part of the release-publish target.
Reviewed by: otaylor
2005-10-13 07:30:15 +00:00
Tor Lillqvist
cd859a23d0 Intersect clip region with target surface so we don't waste time and memory.
Reviewed by: cworth
2005-10-12 15:05:09 +00:00
Carl Worth
1fa004f2a6 Add extend-reflect to the 1.2.0 roadmap. Mark dashed splines and clip-all as fixed.
Mark extend-reflect as an expected failure.
2005-10-12 14:23:11 +00:00
Carl Worth
7dcbcdf75c Add a couple of tests to improve our coverage (clipping under both fill rules). 2005-10-12 13:37:00 +00:00
Carl Worth
990dfde447 Add return value at ASSERT_NOT_REACHED. 2005-10-12 13:33:38 +00:00
Carl Worth
67d20cd4b2 Doc churn 2005-10-12 13:24:35 +00:00
Kristian Høgsberg
d794c624cc Implement non-uniformly spaced color stops for PDF gradients. Patch from Jens Taprogge (#4722). 2005-10-11 13:20:44 +00:00
Billy Biggs
f1044bb3c7 Call it CAIRO_EXTEND_PAD instead of CAIRO_EXTEND_NEAREST.
Update everybody to use _PAD instead of _NEAREST.
2005-10-10 12:45:15 +00:00
Kristian Høgsberg
f39816e016 Transform source pattern for _cairo_surface_fill_path() also (#4673).
Use cairo_fill_preserve() instead of cairo_save()/cairo_restore().
Add missing return values.
2005-10-10 09:36:39 +00:00
Billy Biggs
7fdf45ce61 Add documentation for the extend modes.
Document the extend functions for patterns.
Remove some redundancy in the documentation.
2005-10-10 09:16:21 +00:00
Keith Packard
935764d91c Switch fallback from list of rects to region. Check operator and patterns for non-ps drawing ability. Operators can sometimes be always opaque, independent of the pattern, sometimes always translucent, independent of the pattern and sometimes depend on whether is translucent.
reviewed by: cworth
2005-10-09 20:40:12 +00:00
Keith Packard
a0e970fad2 Add const to _cairo_surface_is_image parameter 2005-10-09 20:31:44 +00:00
Carl Worth
2a3593e35c Doc SGML churn 2005-10-09 20:01:42 +00:00
Billy Biggs
b207dfe822 Add a new test to start investigating bug 4183.
The new test.
Ignore the new test.
2005-10-09 14:51:55 +00:00
Billy Biggs
bb86d6664d Make space for the new bits needed by expand. 2005-10-09 14:29:54 +00:00
Keith Packard
eeb56e713b The comment said 'blend over white', the code did 'blend under garbage'. I made the code look like the comment. More tests pass now. mmm.
reviewed by: cworth
2005-10-09 14:28:15 +00:00
Carl Worth
951c7a6592 Make surface image data static to work around a bug in cairo-meta-surface.c (not copying source surface pattern data). 2005-10-09 13:33:21 +00:00
Billy Biggs
ea7ac21d3b Add a "nearest" extend mode, where the closest pixel is repeated for pixels outside of the source area. Note that for gradients, applications which had explicitly set a repeat mode of NONE will now need to change to use NEAREST to get the same behaviour.
Split CARIO_EXTEND_DEFAULT to indicate defaults for surfaces and gradients. The default for gradients is still the NEAREST beaviour.
Support the NEAREST mode, change NONE to be TRANSPARENT.
Update the extend mode code to use the pixman support.
Handle NEAREST, note that support for NONE is not yet handled for gradients.
Add a check for NEAREST but don't do anything useful.
Add a check for NEAREST but don't do anything useful.
Update a comment about the extend support in the image backend.
reviewed by: davidr, cworth, otaylor
2005-10-09 09:18:16 +00:00
Billy Biggs
32eb6ce206 Add extended repeat modes, copied from XRender.
Cleanup to use the new repeat modes.
Be explicit about which repeat mode we want.
reviewed by: davidr, cworth, otaylor
2005-10-09 09:09:53 +00:00
Carl Worth
a8dbfc42a7 Remove 1.0.2 entries now that it is out. Note that the PS backend has now been added to the test suite. 2005-10-08 22:44:56 +00:00
Carl Worth
e26dbd9500 Add ps-backend-specific reference images for test for which the current output is fine, but just happens to not be identical to the existing reference images, (ie. just minor differences shape-boundary pixels). 2005-10-08 13:04:18 +00:00
Carl Worth
94dece56a5 Ignore output of PS tests.
Fix the PS tests to work again, (track change in create_surface interface).
2005-10-08 11:58:20 +00:00
Carl Worth
24dce0dbb3 Enable PS and PDF backends by default, (in preparation for 1.2.0) 2005-10-08 11:57:45 +00:00
Carl Worth
4d84a70b9f Fix typo leading to truncated error message (Christian Biesinger <cbiesinger@web.de>). 2005-10-08 10:50:08 +00:00
Kristian Høgsberg
27e12fc1db Apply patch from #4672 by Jens Taprogge to implement color stop sorting and multiple color stops for gradients. 2005-10-07 13:21:01 +00:00
Carl Worth
e6239b1d93 Add ChangeLog information for code that was accidentally committed along with an earlier bug fix:
Add missing initialization for ximage.xoffset.
Ignore the -argb32-out.png and -rgb24-out.png images as well.
Pass a format to the surface create functions. (create_image_surface): Condense create_argb_image_surface and create_rgb_image_surface into a single function. (create_xlib_surface): Add support for CAIRO_FORMAT_RGB24 in addition to CAIRO_FORMAT_ARGB32. Add a new target for testing xlib with CAIRO_FORMAT_RGB24.
2005-10-06 12:50:08 +00:00
Carl Worth
74af57339c Add missing initialization for ximage.xoffset. 2005-10-06 11:32:54 +00:00
Anders Carlsson
de3358f883 Invoke PKG_PROG_PKG_CONFIG so $PKG_CONFIG will be set early on. 2005-10-04 13:48:25 +00:00