summaryrefslogtreecommitdiff
path: root/src/cairo-tee-surface.c
Commit message (Collapse)AuthorAgeFilesLines
* Remove unused _cairo_tee_surface_find_matchUli Schlachter2023-02-051-41/+0
| | | | | | | | | | | | | | | | | | | | | | | | A little history digging shows that we only ever had one caller of _cairo_tee_surface_find_match. Commit 658cdc7c9a "Introduce cairo_tee_surface_t" added this code to _cairo_surface_clone_similar(): if (src->type == CAIRO_SURFACE_TYPE_TEE) { cairo_surface_t *match; match = _cairo_tee_surface_find_match (src, surface->backend, content); if (match != NULL) src = match; } Then, two years later in 2011, commit af9fbd176b1 "Introduce a new compositor architecture" removed _cairo_surface_clone_similar() and thus this code became unused. This commit drops this unused code. Signed-off-by: Uli Schlachter <psychon@znc.in>
* tee: Fix cairo wrapper functionsEmmanuele Bassi2023-02-031-10/+14
| | | | | | | Follow-up to !391 to apply the same changes to the (disabled by default) tee surface. Fixes: #634
* Use _cairo_malloc instead of mallocAdrian Johnson2018-05-071-1/+1
| | | | | | | | | | _cairo_malloc(0) always returns NULL, but has not been used consistently. This patch replaces many calls to malloc() with _cairo_malloc(). Fixes: fdo# 101547 CVE: CVE-2017-9814 Heap buffer overflow at cairo-truetype-subset.c:1299 Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* Fix some surfaces missed in b1192beaAdrian Johnson2015-10-171-1/+2
|
* Split cairo-recording-surface-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-recording-surface-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>
* Replace the ad-hoc surface unwrappers with a function pointerChris Wilson2012-02-091-0/+9
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* fdr,tee: Reorder master/slave invocation to capture death-upon-signalsChris Wilson2011-09-161-52/+32
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* Tee: compile fix for recent compositor APIUli Schlachter2011-09-151-16/+5
| | | | Signed-off-by: Uli Schlachter <psychon@znc.in>
* tee: compile fix for migration of _cairo_is_recording_surface()Chris Wilson2011-08-141-0/+1
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* API: map-to-image and create-similar-imageChris Wilson2011-07-261-1/+6
| | | | | | | | | | | | | | | | A common requirement is the fast upload of pixel data. In order to allocate the most appropriate image buffer, we need knowledge of the destination. The most obvious example is that we could use a shared-memory region for the image to avoid the transfer cost of uploading the pixels to the X server. Similarly, gl, win32, quartz... The other side of the equation is that for manual modification of a remote surface, it would be more efficient if we can create a similar image to reduce the transfer costs. This strategy is already followed for the destination fallbacks and this merely exposes the same capability for the application fallbacks. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* clip: Rudimentary support for clip-polygon extractionChris Wilson2011-07-191-15/+15
| | | | | | | 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>
* Implement cairo_backend_tChris Wilson2011-07-151-0/+3
| | | | | | | | | | Allow a backend to completely reimplement the Cairo API as it wants. The goal is to pass operations to the native backends such as Quartz, Direct2D, Qt, Skia, OpenVG with no overhead. And to permit complete logging contexts, and whatever else the imagination holds. Perhaps to experiment with double-paths? Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* tee: Do not apply two times the master device transformRobert O'Callahan2011-01-181-3/+0
| | | | | | | | cairo_tee_surface_create copies the device transform from 'master' to the new surface. This is wrong since all the cairo_surface_wrapper functions apply master's device transform themselves. Reviewed-by: Benjamin Otte <otte@redhat.com>
* tee: Move definitions into separate headerBenjamin Otte2010-07-301-0/+2
|
* tee: Add proper error handlingBenjamin Otte2010-07-051-0/+15
| | | | Caught by api-special-cases
* 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
* Add cairo_device_tChris Wilson2010-01-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The device is a generic method for accessing the underlying interface with the native graphics subsystem, typically the X connection or perhaps the GL context. By exposing a cairo_device_t on a surface and its various methods we enable finer control over interoperability with external interactions of the device by applications. The use case in mind is, for example, a multi-threaded gstreamer which needs to serialise its own direct access to the device along with Cairo's across many threads. Secondly, the cairo_device_t is a unifying API for the mismash of backend specific methods for controlling creation of surfaces with explicit devices and a convenient hook for debugging and introspection. The principal components of the API are the memory management of: cairo_device_reference(), cairo_device_finish() and cairo_device_destroy(); along with a pair of routines for serialising interaction: cairo_device_acquire() and cairo_device_release() and a method to flush any outstanding accesses: cairo_device_flush(). The device for a particular surface may be retrieved using: cairo_surface_get_device(). The device returned is owned by the surface.
* Constify stroke style and matrices.Chris Wilson2010-01-221-3/+3
| | | | | | As a simple step to ensure that we do not inadvertently modify (or at least generate compiler warns if we try) user data, mark the incoming style and matrices as constant.
* Move _cairo_error() to a standalone headerChris Wilson2010-01-221-0/+1
| | | | | A pending commit will want to include some utility code from cairo and so we need to extricate the error handling from the PLT symbol hiding.
* [meta] Rename cairo_meta_surface_t to cairo_recording_surface_t.M Joonas Pihlaja2009-10-221-3/+3
| | | | | | | 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
* [tee] Rename 'append' to 'add' and add symmetric 'remove'Chris Wilson2009-09-011-5/+46
|
* Introduce cairo_tee_surface_tChris Wilson2009-08-291-0/+558
Add a new surface type that multiplies it input onto several output surfaces. The only limitation is that it requires a master surface that is used whenever we need to query surface options, such as font options and extents.