Carl Worth
66e69f18ec
Perform copy and reference in a single step.
...
Remove unnecessary checks for NULL before _destroy() functions. Reset pointers to NULL after _destroy().
2005-11-07 10:26:18 +00:00
Carl Worth
36523b9656
Reorder function bodies to match to match the order of the fields in the structure definition.
2005-11-07 10:17:37 +00:00
Carl Worth
9796a54fa1
Style fix: test-and-bail rather than making the working body conditional.
...
Allow destroy to work on a NULL object.
2005-11-07 10:02:06 +00:00
Carl Worth
201d4e2ce7
Add functions to initialize and copy cairo_stroke_style_t objects.
...
Use new _cairo_stroke_style functions rather than direct modification.
Add missing prototype for _cairo_font_options_init_copy.
2005-11-07 09:49:51 +00:00
Carl Worth
a9e2cf8d9b
Remove unused prototypes for _cairo_gstate_begin_group and _cairo_gstate_end_group.
2005-11-07 09:33:38 +00:00
Carl Worth
ed160b63a1
Add documentation for _cairo_gstate_create, _cairo_gstate_init_copy, and _cairo_gstate_clone.
2005-11-07 09:30:38 +00:00
Carl Worth
fe324c4415
Add a function for copying font options rather than just using direct structure copying.
2005-11-07 09:26:47 +00:00
Carl Worth
f79d48640f
Add missing declarations for status variables. Thanks to Mikael Hallendal for pointing this out.
2005-11-05 22:43:06 +00:00
Carl Worth
9341c254a0
Rename old, rarely used _cairo_array_append to _cairo_array_append_multiple. Add much more common _cairo_array_append. Fix both to return a cairo_status_t. Remove undocumented code to allow a non-copying append when elements is NULL, (let's not encourage unintialized data, shall we?)
...
Cleanup to not rely on undocumented copy-avoidance in _cairo_array_append.
Track change in number of arguments and return value of _cairo_array_append.
2005-11-04 16:13:30 +00:00
Carl Worth
feef096e25
Add documentation for all _cairo_array interface functions.
2005-11-04 15:15:30 +00:00
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
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
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
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
990dfde447
Add return value at ASSERT_NOT_REACHED.
2005-10-12 13:33:38 +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
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
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
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
74af57339c
Add missing initialization for ximage.xoffset.
2005-10-06 11:32:54 +00:00
Anders Carlsson
cdaa48655c
Bring the ATSUI backend up to date wrt the new font backend changes. Also, add cairo_atsui_font_face_create_for_atsu_font_id which takes an ATSUFontID and returns a cairo_font_face_t.
2005-09-30 08:31:36 +00:00
Bertram Felgenhauer
a028678179
simplify id initialisation of last patch
...
reviewed by: keithp
2005-09-29 20:00:14 +00:00
Bertram Felgenhauer
fa2d0ab5b7
Using a pointer comparison as the fallback total order was wrong - these pointers are not stable. So we introduce our own total order instead.
...
mark 4599 as fixed
reviewed by: cworth
2005-09-29 17:26:20 +00:00
Carl Worth
76634781e2
Oops. Reverting debug output that was mistakenly committed.
2005-09-29 10:09:59 +00:00
Carl Worth
4ef5f08563
Add date of 2005-10-03 for 1.0.2. Add 4630 to the 1.0.2 roadmap.
2005-09-29 06:49:47 +00:00
Tor Lillqvist
303e3e9748
Use _cairo_utf8_to_utf16 for character conversion.
2005-09-28 10:35:55 +00:00
Tor Lillqvist
dc711cd88d
Note that Bug #4612 (Text not being drawn if first character entirely out of surface) is now fixed.
...
Add cast so that sign conversion doesn't alter comparison.
2005-09-28 10:25:23 +00:00
Tor Lillqvist
58113099f9
Note that Bug #4602 (use of 0x0 images causes win32 backend failure) is now fixed.
...
Avoid creating size-0 bitmap, which fails.
2005-09-27 13:22:46 +00:00
Carl Worth
abaf346810
Note that bug #4409 (Dashes are missing initial caps) is now fixed.
...
Move face-flipping from inside _cairo_stroker_add_caps to new _cairo_stroker_add_leading_cap variant of _cairo_stoker_add_cap.
Change to call _cairo_stroker_add_leading_cap or _cairo_stroker_add_trailing_cap as appropriate.
Remove dash-caps-joins from the XFAIL list and add reference image.
2005-09-27 12:44:32 +00:00
Tor Lillqvist
1010e9052f
Set LOGFONT::lfHeight negative. A negative lfHeight means "em height" which is what we want, and matches how other toolkits interpret font sizes on Win32. (Positive lfHeight means "cell height".) ( #4593 ) (_cairo_win32_scaled_font_init_glyph_metrics): If GetGlyphOutlineW() fails, print error message and set metrics to zero. ( #3927 , Hans Breuer) (cairo_win32_scaled_font_select_font): Add detail on what API failed to the error messages.
2005-09-26 07:48:10 +00:00
Carl Worth
8fc9e099fd
Avoid attempting to create a size-0 Pixmap, (to prevent the associated X error). This actually showed up when the clip region is empty. Thanks to Radek Doulík for the bug report.
...
Remove clip-all from the XFAIL list since it works now.
2005-09-19 17:24:52 +00:00