summaryrefslogtreecommitdiff
path: root/src/cairo-paginated-surface-private.h
Commit message (Collapse)AuthorAgeFilesLines
* Update FSF addressAndrea Canciani2010-04-271-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
* paginated: Use common is_clear.Chris Wilson2010-03-211-1/+0
| | | | | | As equivalent processing to the page_is_blank optimisation done inside the paginated surface is applied by the gstate, remove the redundant code.
* [meta] Rename cairo_meta_surface_t to cairo_recording_surface_t.M Joonas Pihlaja2009-10-221-2/+2
| | | | | | | The new name is more descriptive than the rather opaque meta surface. Discussed with vigour on the mailing list and #cairo: http://lists.cairographics.org/archives/cairo/2009-July/017571.html
* Remove clip handling from generic surface layer.Chris Wilson2009-07-231-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 ▏
* Remove include of cairoint.h from *-private.h header files.Carl Worth2007-08-231-1/+1
| | | | | | | | | | | | These were recently added, (as part of sparse integration?), but they break boilerplate which reaches into at least cairo-types-private.h and cairo-scaled-font-private.h. But boilerplate cannot see cairoint.h or else it gets the internal sybol renaming, (with the INT_ prefix), and then all the test suite tests refuse to link. If this change reverts some recently-added functionality, (or cleanliness), then we'll just need to find some other way to add that back again without the breakage.
* [Makefile.am] Add target sparse to run sparse static source code analyzerBehdad Esfahbod2007-08-221-1/+1
| | | | There are still some bits not quite working.
* [paginated] Include cairo-surface-private.hBehdad Esfahbod2007-04-211-0/+2
|
* [paginated] Move cairo_paginated_surface_t to cairo-paginated-surface-private.hBehdad Esfahbod2007-04-211-91/+25
| | | | The old cairo-paginated-surface-private.h is cairo-paginated-private.h now.
* [paginated] Move cairo_paginated_mode_t to cairo-types-private.hBehdad Esfahbod2007-04-211-5/+0
| | | | | as it is used in surface structs for PS/PDF/SVG and we will need it.
* Mark function tables with attribute(warn_unused_result)Chris Wilson2007-04-111-1/+1
|
* Move optimization of CLEAR on blank page up from PS to paginated surface.Carl Worth2006-04-141-0/+8
|
* Update documentation of cairo_paginated_surfaceCarl Worth2006-04-141-0/+12
|
* Add a start_page function to the paginated_surface_backend.Carl Worth2006-04-141-2/+58
| | | | | | | | | | This allows for any surface using the paginated_surface backend to easily do stuff at the beginning of each page, (such as writing out any per-page header necessary). This replaces some of the per-page state tracking that the PS surface was doing, (though it still has some left for its optimization of CLEAR on a blank page).
* Add a new cairo_paginated_surface_backend_t rather than just a single ↵Carl Worth2006-04-141-7/+10
| | | | function pointer.
* Drop gratuitous structure with single function pointer. RenameCarl Worth2006-02-271-7/+3
| | | | paginated_set_mode to set_paginated_mode.
* rename evaluate surface to analyze surface, pull to separate filesKeith Packard2006-02-271-1/+1
|
* Primitive "real" postscript output for stroke/fill/paintKeith Packard2006-02-271-1/+14
|
* Mark private functions as cairo_privateChristian Biesinger2006-02-241-1/+1
| | | | (cherry picked from a1c72cd8f244e97d4b6fe3e5d3efa622c8b3f7f9 commit)
* Big change to the test infrastructure and supporting internals. The goal now ↵Carl Worth2006-01-171-0/+1
| | | | | | | | | | | | | | | | | | | | is to test both a COLOR_ALPHA and a COLOR content for each surface backend, (since the semantics are different and we probably need to support both in each backend. The PS/PDF backends don't allow a content to be passed in right now, so they fail against the rgb24 tests, but the trivial addition to the constructors will allow them to pass all tests with both content values. And new constructors (currently internal only) to create an image surface with a cairo_content_t rather than a cairo_format_t. Add a cairo_content_t argument to the constructor. Add a cairo_content_t to the constructor and use this content value when constructing intermediate image surfaces in acquire_source, show_page, copy_page, and snapshot. Add image flattening by compositing over white, as is done in cairo-ps-surface.c. Track changes to cairo-paginates-surface which now requires a cairo_content_t value (no change to public PS/PDF constructors yet). Track change in meta-surface and paginated-surface interfaces by now accepting a cairo_content_t rather than a cairo_format_t. Ignore new output files (argb32 from pdf and ps as well as rgb24 from test-fallback, test-meta, and test-paginated). Add new utility for flattening PNG images in order to generate the -argbf-ref.png images. Add image_diff_flattened for comparing flattened output from PS and PDF backend with ARGB reference images by first blending the reference images over white. Get rid of conditional, format-specific background-color initialization before running tests. Now uses ARGB(0,0,0,0) in all cases. Switch from specifying tests with a format value to specifying tests with a content value. Add support for a 'fake' COLOR_ALPHA_FLATTENED content for testing the PS and PDF output against a flattened version of the argb32 reference images (first blended over white). Track change in cairo_ps_surface_create (now requires cairo_content_t value). Adjust tests that draw in default (black) to first paint white so that the results are visible. Adjust ARGB32 reference images for new white background for changed tests. Adjust RGB24 reference images for new black background due to changed initialization (and the tests themselves being unchanged).
* Note that from here on out, the PDF output should always pass the entire ↵Carl Worth2006-01-111-0/+6
| | | | | | | | test suite! Add new functions needed by users of cairo_paginated_surface_t. Always snapshot a paginated surface to an image surface, rather than a surface similar to the target. We do this since paginated target surfaces are allowed to not be complete surfaces, (such as not implementing acquire_source_surface). Switch the implementation of cairo_pdf_surface_t to use cairo_paginated_surface_t. For now this means that all PDF output is fallback images, but this can change incrementally as we go forward.
* Add a private cairo_paginated_surface_t which builds on top of the meta ↵Carl Worth2005-12-211-0/+46
surface and is intended to provide an easy interface with common functionality for the various paginated surface types (ps, pdf, etc.). Add test_paginated_surface_t which is another test surface enabled with --enable-test-surfaces. The test_meta_surface code served as the basis for cairo_paginated_surface_t so that test surface may be entirely superfluous now.