summaryrefslogtreecommitdiff
path: root/src/cairo-freelist-private.h
Commit message (Collapse)AuthorAgeFilesLines
* Avoid indiscriminate use of VALGRIND_MAKE_MEM_NOACCESS.John Lindgren2015-06-261-1/+1
| | | | | | | | | Marking stack-allocated objects as no-access creates false positives, which distract from finding real memory errors. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=52548 Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
* botor: Remove a couple of inlines to cleanup -WinlineChris Wilson2011-10-101-1/+1
| | | | Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
* freelist: Separate freelist inlines from the datatype in headers.M Joonas Pihlaja2010-09-021-27/+1
| | | | | | | | | | | | | | | | The cairo-freelist-private.h header has a number of static inline functions which call hidden functions in libcairo. This poses a problem on Solaris where the native compiler compiles inline functions whether they are used or not, thereby adding the link time requirements on hidden functions from whatever code that includes cairo-freelist-private.h. Unfortunately the boilerplate code includes cairo-private headers and indirectly the freelist header, so linking the boilerplate helper library fails on Solaris. This patch separates the structure definitions from the function prototypes and static inlines in cairo-freelist-private.h by moving the datatypes to a new cairo-freelist-type-private.h.
* drm: code dump, sorry.Chris Wilson2010-05-121-1/+0
| | | | Lots upon lots of tiny fixes mixed in with experimental code. :(
* spans: Add a Bentley-Ottmann variant on the Tor scan converterChris Wilson2010-01-221-0/+16
| | | | | | | | | | | | | | | | | | | | This variant uses the Bentley-Ottmann algorithm to only maintain the active edge list upon edge events and so can efficiently skip areas where no change occurs. This means that it can be much quicker than the Tor algorithm (which is still used to compute the coverages from the active edges) for geometries consisting of long straight lines with few intersections. However due to the computational overhead of the Bentley-Ottmann event processing, for dense curvy paths, simply updating the active edge list in sync with computing the coverages is a win. Due to advantageous adaptive step size, the scan converter can be run at a much higher subsampling with little extra overhead compared with Tor, currently it uses a 256x256 subsampling grid to avoid any impedance mismatch with path precision. Given the current status of implementations, this scan converter [botor] is likely to be advantage where detecting large regions of unchanged span data will result in improved performance, for instance the drm backends which convert the scan data into rectangles.
* [xcb] Deferred error checking.Chris Wilson2009-09-301-0/+5
| | | | | | | | | XCB avoids the dreaded abort on XError mechanism by forcing the client to perform deferred error checking. So do so. This allows us to combine the fire-and-forget rendering model with accurate error checking, without killing the client or mixing our errors with theirs. XCB for the win!
* Revert "[freelist] Make _cairo_freepool_alloc_from_new_pool static inline."Chris Wilson2009-09-011-27/+2
| | | | | This reverts commit 5a3fa29b370816acb3a08d60e4031ed82c1e4c73 as it breaks the boilerplate when linking with gcc.
* [freelist] Make _cairo_freepool_alloc_from_new_pool static inline.M Joonas Pihlaja2009-09-011-2/+27
| | | | | | | | | | | | | The xlib boilerplate includes a cairo private header to be able to disable usage of the render extension. This indirectly includes cairo-freelist-private.h which contains a bunch of static inline functions which use the private _cairo_freepool_alloc_from_new_pool function, but since that is not inline also, it causes an undefined extern which cannot be resolved. The binutils linker doesn't care since the freelist function aren't actually used in the boilerplate but the Solaris linker does. By making the .._alloc_from_new_pool function inline no dangling references are created and linking succeeds.
* [freelist] Lazy initialisation of poolsChris Wilson2009-08-291-3/+28
|
* [drm] Add an accelerated image surface.Chris Wilson2009-07-231-5/+54
| | | | | | | | | | | | | | | | | Use the DRM interface to h/w accelerate composition on image surfaces. The purpose of the backend is simply to explore what such a hardware interface might look like and what benefits we might expect. The use case that might justify writing such custom backends are embedded devices running a drm compositor like wayland - which would, for example, allow one to write applications that seamlessly integrated accelerated, dynamic, high quality 2D graphics using Cairo with advanced interaction (e.g. smooth animations in the UI) driven by a clutter framework... In this first step we introduce the fundamental wrapping of GEM for intel and radeon chipsets, and, for comparison, gallium. No acceleration, all we do is use buffer objects (that is use the kernel memory manager) to allocate images and simply use the fallback mechanism. This provides a suitable base to start writing chip specific drivers.
* Revamp the build system.Behdad Esfahbod2008-09-021-0/+1
| | | | | | | | | | | | | | | | | Quick summary of changes: - Move list of cairo source files out of src/Makefile.am and into src/Sources.mk, - Generate files src/Config.mk and src/Config.mk.win32 that choose the right set of source files and headers based on configured backends and features. This drastically simplifies building using other build systems. The src/Makefile.win32 file needs to be updated to reflect these changes. - Add README files to various directories, - Add toplevel HACKING file.
* [doc] Make sure all macro names in docs are prefixed by %Behdad Esfahbod2008-01-281-2/+2
|
* [cairo-xlib] Fixup --disable-xlib-xrenderChris Wilson2008-01-151-2/+1
| | | | | Fixup the headers and boilerplate to compile and run correctly when configured with --disable-xlib-xrender.
* [cairo-freelist] Remove redundant struct declarationsBehdad Esfahbod2007-04-191-2/+0
|
* Add some missing cairo_private decoratorsCarl Worth2006-11-221-5/+7
|
* perf: new-tessellator: Deferred trapezoid generation (first try)Joonas Pihlaja2006-11-221-0/+71