summaryrefslogtreecommitdiff
path: root/src/cairo-default-context-private.h
Commit message (Collapse)AuthorAgeFilesLines
* qt: Fix compilation, also minor fix for building against Qt5Oleg Romashin2012-02-121-0/+4
| | | | | | | Update to latest surface backend structure, removed obsolete functions and fixed functions API in order to be compatible with backend definition. Fixed compilation with Qt5
* default-context: Fix 'make check'Andrea Canciani2011-11-091-2/+2
| | | | | | | | | | | | | | | 'make check' reports: Checking that .libs/libcairo.so has the same symbol list as cairo.def 1a2,3 > _cairo_default_context_fini > _cairo_default_context_init Checking .libs/libcairo.so for local PLT entries 0011a274 00025f07 R_386_JUMP_SLOT 00026350 _cairo_default_context_fini 0011a494 00027607 R_386_JUMP_SLOT 00026480 _cairo_default_context_init Marking these functions as cairo_private fixes the problem.
* backends: Adds a new Cogl based backendRobert Bragg2011-10-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new GPU accelerated backend for Cairo based on the Cogl 3D graphics API. This backend aims to support Cairo in a way that translates as naturally as possible to using a GPU, it does not strive to compete with the anti-aliasing quality of the image backend if it can't be done efficiently using the GPU - raw performance isn't the only metric of concern, so is power usage. As an overview of how the backend works: - fills are handled by tessellating paths into triangles - the backend has an extra fill_rectangle drawing operation so we have a fast-path for drawing rectangles which are so common. - strokes are also tessellated into triangles. - stroke and fill tessellations are cached to avoid the cpu overhead of tessellation and cost of upload given that its common for apps to re-draw the same path multiple times. The tessellations can survive translations and rotations increasing the probability that they can be re-used. - sources and masks are handled using multi-texturing. - clipping is handled with a scissor and the stencil buffer which we're careful to only update when they really change. - linear gradients are rendered to a 1d texture using a triangle strip + interpolating color attributes. All cairo extend modes are handled by corresponding texture sampler wrap modes without needing programmable fragment processing. - antialiasing should be handled using Cogl's multisampling API XXX: This is a work in progress!! TODO: - handle at least basic radial gradients (No need to handle full pdf semantics, since css, svg and canvas only allow radial gradients defined as one circle + a point that must lie within the first circle.) - currently we fall back to pixman for radial gradients. - support glyph rendering with a decent glyph cache design. The current plan is a per scaled-font growable cache texture + a scratch cache for one-shot/short-lived glyphs. - decide how to handle npot textures when lacking hardware support. Current plan is to add a transparent border to npot textures and use CLAMP_TO_EDGE for the default EXTEND_NONE semantics. For anything else we can allocate a shadow npot texture and scale the original to fit that so we can map extend modes to texture sampler modes.
* Update FSF addressAndrea Canciani2011-07-311-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
* Implement cairo_backend_tChris Wilson2011-07-151-0/+58
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>