summaryrefslogtreecommitdiff
path: root/src/cairo-mask-compositor.c
Commit message (Collapse)AuthorAgeFilesLines
* surface: Merge scratch construction into _cairo_surface_create_scratchAlexander Larsson2013-09-051-6/+8
| | | | | | | | | | | We merge _cairo_surface_create_similar_scratch and _cairo_surface_create_similar_solid into a single function named _cairo_surface_create_scratch, to avoid confusion with cairo_surface_create_similar which now will have a different behaviour wrt the sizes and the device-scale. _create_scratch assumes the width and height are in backend coordinates, while create_similar does not.
* compositor: Pass back the internal failureChris Wilson2013-01-131-2/+2
| | | | | | | | In order to pass back a CAIRO_INT_STATUS_UNSUPPORTED, we need to use the internal error surface creation functions as they do not assert on private error codes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* compositor: Convert image surface into backend sourceChris Wilson2013-01-131-15/+46
| | | | | | | | | Before passing a surface to the backend composite functions, they expect them to be a native source. The copy'n'paste code for the mask compositor forgot to perform the conversion upon the clip surfaces, which originally were native to the backend and are now images. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* xlib: Only fallback through the mask intermediate if we can composite the maskChris Wilson2013-01-111-4/+23
| | | | | | | | Before rendering into the mask, we should first check whether the subsequent call to composite the mask will trigger a fallback. In that case, we should fallback earlier and do the operation in place. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* Split cairo-pattern-private into struct+inlinesChris Wilson2012-04-191-1/+1
| | | | | References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* 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>
* {mask,traps}-composite: Restore unsetting of the is-clear flags for the maskChris Wilson2012-02-241-1/+2
| | | | | | | | I forgot that creating any image by defaults results in pixman calloc'ing the pixel data and so cairo helpfully sets the is-clear flag on the surface. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* mask-compositor: Acquire the target surface when creating the composite maskChris Wilson2012-02-221-14/+38
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* Replace the ad-hoc surface unwrappers with a function pointerChris Wilson2012-02-091-17/+8
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* Introduce a new compositor architectureChris Wilson2011-09-121-0/+1412
Having spent the last dev cycle looking at how we could specialize the compositors for various backends, we once again look for the commonalities in order to reduce the duplication. In part this is motivated by the idea that spans is a good interface for both the existent GL backend and pixman, and so they deserve a dedicated compositor. xcb/xlib target an identical rendering system and so they should be using the same compositor, and it should be possible to run that same compositor locally against pixman to generate reference tests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> P.S. This brings massive upheaval (read breakage) I've tried delaying in order to fix as many things as possible but now this one patch does far, far, far too much. Apologies in advance for breaking your favourite backend, but trust me in that the end result will be much better. :)