Specifically, device offsets now affect using the offset surface in
a source pattern as well as drawing to the surface. This behavior
os also verified with a new test case: test/device-offset.c
Clarify the documentation of cairo_set_line_width to indicate that the
value will be interpreted within the user space at the time of the
stroke.
Also adjust the comments in test/line-width-scale as well as the
reference images for that test to match.
This introduced a rather gratuitous dependency on a newer version of
poppler, which caused a fair amount of pain for no significant
benefit.
This reverts 253472492e commit.
This patch adds the following API calls:
cairo_push_group
cairo_push_group_with_content
cairo_pop_group
cairo_pop_group_to_source
cairo_get_group_target
These methods support implementing layers on top of a cairo context,
allowing for drawing with transparency and temporary buffering.
cairo_get_group_target allows an app to get access to the actual surface
created by the last push_group call, in case itneeds to perform native
drawing to it.
This is a mega-patch that has the advantage that the entire test suite
passes both immediately before and immediately after this commit.
The disadvantage of the mega-patch is that it does not reflect the
development history of the device-offset branch, (with its various
fumblings and flailings). To capture that history, we will next merge
in that branch.
Shrink linear-gradient and text-pattern test outuput.
The real motivation for this is to hide an annoying difference in the
gradient output that occurs when under the influence of a device
offsets. My opinion is that the gradient output should not change due
to just an integer offset, but we currently don't have a precise
gradient specification, so this minor deviation really isn't relevant.
A better fix for this might have been to make the test suite more
forgiving of tiny differences, (perhaps on a per-test basis), but
another advantage of shrinking these tests is that they now run a lot
faster.
It is true that these tests now also exercise fewer different output
values, but that's not the designed purpose of the tests so I don't
feel bad about losing that characteristic.
[With this change, two tests with gradients exhibit subtle differences
under device offsets. I don't think we actually care about them
though. -cworth]
This commit adds the following new functions to the cairo-ps API:
cairo_ps_surface_dsc_comment
cairo_ps_surface_dsc_begin_setup
cairo_ps_surface_dsc_begin_page_setup
Many thanks are due to Michael Sweet who provided invaluble guidance
during the design of this API.
It is hoped that with this API in place, basically all printer control
that is likely to be desired to be performed with cairo PostScript
output is now possible.
This commit augments the ps-features test to exercise the new API.
Add a new cairo_ps_surface_set_size which can be used to produce a
PostScript file consisting of pages of various different sizes (or
orientations).
Also add a new test (ps-features.c) for testing this and subsequent
ps-specific function calls.