summaryrefslogtreecommitdiff
path: root/src/cairo-surface-clipper.c
Commit message (Collapse)AuthorAgeFilesLines
* Split cairo-clip-privates into struct+inlinesChris Wilson2012-04-191-0/+1
| | | | | References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* surface-clipper: Fix path leak due to typoChris Wilson2011-10-121-1/+1
| | | | | | When finishing the path, it is better to call fini() rather than init() Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* clipper: Fix crashesAndrea Canciani2011-08-051-2/+1
| | | | | | | | | | The end of the clip path list is marked with NULL, so we should stop iterating paths when we reach it. The assertion was meant to check if paths had the same content, not if they have the same address. Fixes clip-fill-rule and clip-twice in cairo-quartz.
* clipper: Don't emit an empty clip-path for no clip boxesChris Wilson2011-08-051-0/+3
| | | | | | | | | If there are no clip boxes, we do not need to emit an empty clip which only confuses the users of the surface-clipper. Spotted by Andrea Canciani and cairo-quartz Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* clipper: Also need to guard against the incoming clip being NULLChris Wilson2011-07-291-1/+1
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* clipper: Detect a incremental change in the general clip-pathChris Wilson2011-07-291-4/+30
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* clip: Rudimentary support for clip-polygon extractionChris Wilson2011-07-191-45/+77
| | | | | | | Step 1, fix the failings sighted recently by tracking clip-boxes as an explicit property of the clipping and of composition. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* 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
* clip: Compare the whole clip when testing for equality.Chris Wilson2010-04-101-4/+1
| | | | Should fix test/clip-contexts
* Remove clip handling from generic surface layer.Chris Wilson2009-07-231-0/+138
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 ▏