summaryrefslogtreecommitdiff
path: root/src/Makefile.sources
AgeCommit message (Collapse)AuthorFilesLines
2013-01-03stroke: Make the incremental trapezoid stroker optionally available againChris Wilson1-0/+1
Whilst it cannot handle self-intersecting strokes (which includes the antialias region of neighbouring lines and joints), it is about 3x faster to use than the more robust algorithm. As some backends delegate the rendering, the quality may still be preserved and so they should be responsible for choosing the appropriate method for generation of the stroke geometry. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-09-24xcb: Remove unimplemented cairo compositorUli Schlachter1-1/+0
Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-08-17xlib: Implement SHM fallbacks and fast upload pathsChris Wilson1-0/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-list into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-surface-subsurface-private into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-error-private into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-pattern-private into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-recording-surface-private into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-recording-surface-private into struct+inlinesChris Wilson1-0/+2
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-surface-observer-private into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-surface-private into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-contour-privates into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-combsort-privates into struct+inlinesChris Wilson1-1/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-clip-privates into struct+inlinesChris Wilson1-0/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-19Split cairo-box-privates into struct+inlinesChris Wilson1-1/+1
References: https://bugs.freedesktop.org/show_bug.cgi?id=48577 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-03-19skia: add a missing header into archiveKouhei Sutou1-0/+1
2012-02-28spans+image: Fix clipping with polygons and spansChris Wilson1-0/+1
Fixes: clip-source, random-clip Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-15win32: Rebase on the new compositor infrastructureChris Wilson1-1/+5
Try and undo all the damage that has acrued over the years by plugging into the compositor pipeline. References: https://bugs.freedesktop.org/show_bug.cgi?id=42739 References: https://bugs.freedesktop.org/show_bug.cgi?id=42821 References: https://bugs.freedesktop.org/show_bug.cgi?id=33081 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-15win32: Move to separate directoyChris Wilson1-4/+8
I suspect I may split the win32 code into a few more files, so move it to its own directory to reduce the clutter. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-02-15Add preliminary damage trackingChris Wilson1-0/+2
This is initially based around the requirements for handling internal fallbacks to the image compositor and reducing the number of pixels required to be transferred. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-12-05gl: Use the embedded operand to allow passing sources aroundChris Wilson1-0/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-11-25Convert cairo_mime_surface_t to cairo_raster_source_pattern_tChris Wilson1-1/+1
As discussed, overloading the cairo_surface_t semantics to include sources (i.e. read-only surfaces) was duplicating the definition of cairo_pattern_t. So rather than introduce a new surface type with pattern semantics, start along the thorny road of extensible pattern types. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-10-15Merge branch 'master' of git://cairographics.org/git/cairoChris Wilson1-0/+1
2011-10-13gl/msaa: Introduce an MSAA compositor for OpenGLMartin Robinson1-0/+1
The MSAA compositor will composite OpenGL primitives directly and anti-alias via the GPU.
2011-10-11backends: Adds a new Cogl based backendRobert Bragg1-0/+10
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.
2011-09-15build: Another missing private.hChris Wilson1-0/+1
2011-09-15build: Add missing cairo-surface-backend-private.h to sourcesChris Wilson1-0/+1
2011-09-12Introduce a new compositor architectureChris Wilson1-10/+32
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. :)
2011-09-02time: Add cairo_time_t typeAndrea Canciani1-0/+2
Add the cairo_time_t type (currently based on cairo_uint64_t) and use it in cairo-observer and in the perf suite. Fixes the build on MacOS X (for the src/ subdir) and Win32, whch failed because they don't provide clock_gettime: cairo-surface-observer.c:629: error: implicit declaration of function 'clock_gettime' cairo-surface-observer.c:629: warning: nested extern declaration of 'clock_gettime' cairo-surface-observer.c:629: error: 'CLOCK_MONOTONIC' undeclared (first use in this function) ...
2011-08-20observer: record all operations and their timingsChris Wilson1-0/+1
The immediate use of this is to print out the slowest operation of each type in a replayable manner. A continuing demonstration of how we may analyse traces... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-15stroke: Convert the outlines into contour and then into a polygonChris Wilson1-0/+2
In step 1 of speeding up stroking, we introduce contours as a means for tracking the connected edges around the stroke. By keeping track of these chains, we can analyse the edges as we proceed and eliminate redundant vertices speeding up rasterisation. Coincidentally fixes line-width-tolerance (looks like a combination of using spline tangent vectors and tolerance). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-15stroke: move normal stroker to new fileChris Wilson1-0/+1
Step 1 of enhancing the speed of the stroker is to segregate from the rest of the complex code. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-15Introduce cairo_mime_surface_tChris Wilson1-0/+1
The mime surface is a user-callback surface designed for interfacing cairo with an opaque data source. For instance, in a web browser, the incoming page may be laid out and rendered to a recording surface before all the image data has finished being downloaded. In this circumstance we need to pass a place holder to cairo and to supply the image data later upon demand. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-14Introduce cairo_surface_observer_t for performance analysisChris Wilson1-0/+2
Another logging passthrough surface that records the style of operations performed trying to categorise what is slow/fast/important. In combination with perf/cairo-analyse-trace it is very useful for understanding what a trace does. The next steps for this tool would be to identify the slow operations that the trace does. Baby steps. This should be generally useful in similar situations outside of perf/ and should be extensible to become an online performance probe. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13stroke: Rely on the tessellator to remove self-intersectionsChris Wilson1-0/+3
As handling joins/caps between line segments shorter than half_line_width is tricky. Rather than also fixing the bug in traps, remove that code. The plan is to avoiding hitting the traps code, short-circuiting several steps along the fast rectangular paths. Fixes line-width-overlap. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13skia: Update to use cairo_backend_t interfaceChris Wilson1-1/+4
Still hopelessly broken. Requires compiling cairo to use static linking and then still requires manual linkage to workaround libtool. Lots of functionality is still absent - we need to either find analogues to some Cairo operations or implement fallbacks - but it is sufficient to investigate how Skia functions in direct comparison with Cairo for tessellation/rasterisation. Caveat emptor. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-13image: move surface definition to new header for subclassingChris Wilson1-0/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-08-09build: Add a missing cairo-backend-private.hChris Wilson1-0/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-19clip: Rudimentary support for clip-polygon extractionChris Wilson1-0/+7
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>
2011-07-15pattern: Add observer hooksChris Wilson1-0/+1
In order for custom context to automatically track when a pattern is modify after being set on the context (and before it is used in an operator), we need for there to be a callback when the pattern is modified. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-07-15Implement cairo_backend_tChris Wilson1-0/+2
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>
2011-07-14Excise DRM-XrChris Wilson1-5/+0
I've since incorporated (nearly) all the features from cairo-drm into xf86-video-intel, making this experiment defunct. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-06-24error: Do not define _cairo_error twiceAndrea Canciani1-0/+1
cairo-perf-trace uses cairo-hash.c, which calls _cairo_error. Instead of redefining it in cairo-perf-trace.c it can be abstracted in a separate source which is directly included in the build of cairo-perf-trace. This avoids visibility issues when compiling cairo-perf-trace with a statically linked cairo library on architectures which do not support hidden visibility (example: win32).
2011-06-14Remove if's from Makefile.sourcesAndrea Canciani1-24/+5
make on win32 complains that: make[1]: Entering directory `/home/ranma42/Code/fdo/cairo/src' ../src/Makefile.sources:220: *** missing separator. Stop. Makefile.sources should not contain if's, which are aoutomake-only conditionals. The correct way to conditionally include files is to enable/disable them using C preprocessor macros.
2011-05-10gl: Add GLESv2 backend to build systemAlexandros Frantzis1-0/+4
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2011-01-23Makefile: add missing cairo-box-private.hChris Wilson1-0/+1
2011-01-01pdf,ps: Add native mesh pattern supportAdrian Johnson1-2/+2
PS and PDF have native support for mesh patterns, but they have encode mesh points and colors in an appropriate binary stream. cairo_pdf_shading_* functions implement the encoding, which is the same for PDF and PS.
2011-01-01Add mesh gradient rasterizerAndrea Canciani1-0/+1
Add an implementation of a fast and reasonably accurate non-antialiased mesh gradient rasterizer.
2011-01-01Keep makefiles in alphabetical orderAndrea Canciani1-2/+2
Recording surfaces were at first called meta surfaces. When the name was changed, makefiles were not updated to keep alphabetical order.
2010-12-15gl: Remove GLEW from the build system and the source treeAlexandros Frantzis1-6/+1