summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-05-17gl/msaa: Add ARB multisampling supportHenry (Yu) Song7-47/+334
This implementation is not very efficient at the moment and does not work with platforms using the incompatible IMG extension (mobile GPUs). Performance improvements and mobile GPU support will follow.
2012-05-16pdf: check if EXTEND_PAD group can be painted with EXTEND_NONEAdrian Johnson1-4/+22
to avoid the fallback
2012-05-14stroke: Don't drop clockwise==0 linesChris Wilson16-11/+3
If the join indicates the pair of edges are parallel, we may be considering the final segment of the spline with a different tangent vector than the slope of the final edge and so lead to false dropping of an edge. This has the effect that the line segments between 'arc arc arc arc' (a rounded rectangle) are no longer horizontal or vertical. As path construction tries to eliminate joins between colinear segments, this optimisation should not be required anyway. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-14spans: Debug input paths and polygonsChris Wilson2-0/+5
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-14arc: Use user endpoint for final stepChris Wilson1-12/+17
Eliminate numerical inaccuracy from accumulating angle through the floating point step value by using the exact end-value for the last arc segment. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-12gl: Provide a shader implementation of repeat wrap modesAlexandros Frantzis4-21/+90
In OpenGL ES 2.0, repeat wrap modes (GL_REPEAT and GL_MIRRORED REPEAT) are only available for NPOT textures if the GL_OES_texture_npot is supported. This commit adds a shader implementation of these wrap modes for use by devices that do not support GL_OES_texture_npot.
2012-05-12gl: Simplify GL wrap parameter setting codeAlexandros Frantzis1-14/+15
2012-05-11clip: Apply clip boxes to the clip surfaceChris Wilson3-9/+77
As we convert the unaligned clip boxes to a region, we need to process the intersection of the boxes with the clip surface as a separate step. Fixes tighten-box for the base compositor. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-11spans: Only fallback for a clipmask if unboundedChris Wilson6-1/+2
For a bounded operation with a clip we will already have performed the clip geometrically. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-11traps,spans-compositor: Avoid mistreating unaligned clips as alignedChris Wilson2-3/+23
An unaligned clip requires careful handling, and so exclude processing along the fast paths. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-11spans-compositor: Add tracepoints for debuggingChris Wilson1-1/+21
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-11spans-compositor: Handle unaligned unbounded boxesChris Wilson1-16/+51
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-11test: Fix tighten-bounds reference imagesChris Wilson4-0/+0
Uli Schlachter spotted that I had inadvertently committed (606e9e1c9) a broken set of test images for the tighten-bounds case and so masked a nasty bug with the mishandling of unaligned clips. Reported-by: Uli Schlachter <psychon@znc.in> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-11gl: Reject SOURCE + mask in composite_boxes()Chris Wilson1-4/+10
As SOURCE requires a bounded operation and the GL compositor only implements a simple operation (i.e. it just blits from source to destination instead of applying a linear interpolation as required), we need to reject the operation and fallback. In the future, we should make the linear interpolation available through a GL shader or as a dual-source blend (better). Spotted-by: Chuanbo Weng <strgnm@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-11gl: Convert CLEAR to DEST_OUT when there's a mask for composite_boxes.Chuanbo Weng1-1/+13
As Cairo's CLEAR sematics are for a bounded operation, and GL's uses the simple semantics for its CLEAR composite, we need to convert the operation into an equivalent DEST_OUT when we have a mask.
2012-05-10damage: Prevent reducing an error objectChris Wilson1-1/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-10damage: Prevent accumulating damage to an error objectChris Wilson1-0/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-10damage: Avoid freeing the NIL error objectChris Wilson1-0/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-09c_surface_set_mime_data: Remove duplicate "Since"Uli Schlachter1-2/+0
This fixes the following message from "make check": ./cairo-surface.c (1192): ERROR: cairo_surface_set_mime_data: Duplicate 'Since' field Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-05-09check-doc-syntax: Find duplicate "Since:" tagsUli Schlachter1-1/+4
It makes no sense to say more than one time when some symbol was introduced. Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-05-09check-doc-syntax: Make this work againUli Schlachter1-1/+1
Commit ed90616b77570 changed the way the awk script gets invoked. Due to a missing "test", this resulted in the awk script never getting invoked at all. Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-05-08gl/msaa: Add support for unbounded operatorsHenry (Yu) Song1-0/+100
When filling and stroking with an unbounded operator, first fill and stroke to a temporary surface and then paint the entire surface back to the original target.
2012-05-08gl/msaa: Support for maskingHenry (Yu) Song2-23/+122
Add support for masking in the OpenGL MSAA compositor. This is accomplished simply by properly setting up the masking source, emitting the entire bounded composite region, and unforking vertex emission.
2012-05-08gl/msaa: Support for texture sourcesHenry (Yu) Song3-66/+15
Add support for texture sources, by unforking _cairo_gl_composite_begin. _cairo_gl_composite_begin_tristrip is now just a small wrapper. Also properly emit the source texture coordinates when emitting tristrip vertices.
2012-05-08gl/msaa: Prevent stroke overlapHenry (Yu) Song1-0/+36
When stroking we do not send our polygon to the tessellator, so it may have overlapping stroke components. Use the stencil buffer to prevent stroke components from overlapping.
2012-05-05Remove some dead codeUli Schlachter1-5/+0
This code could never be executed, because the status variable doesn't get set since the last time it is checked and errors get returned to the caller. This was noticed while looking into the build log provided by http://lists.cairographics.org/archives/cairo/2012-April/022993.html Reported-by: Ryan Schmidt <cairo-2012b@ryandesign.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-05-05Remove some unused functionsUli Schlachter2-80/+0
All of these are unused since af9fbd176b145f0424 "Introduce a new compositor architecture". Since no one complained yet, I guess that means that we don't need these any more. :-) This was noticed while looking into the build log provided by http://lists.cairographics.org/archives/cairo/2012-April/022993.html Signed-off-by: Uli Schlachter <psychon@znc.in>
2012-05-04gl: fix the translate value in copy_boxes.Chuanbo Weng1-1/+1
Fixes 36 test cases (such as push-group-color) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48221
2012-05-01Split finish into multiple stagesChris Wilson1-9/+23
In order to handle the snapshot copy-on-write losing a race with another thread using the snapshot as a source, we may find the target acquires a fresh reference as we attempt to finalize it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-01snapshot: Avoid triggering assertion for grabbing the target during destroyChris Wilson2-1/+10
If the source wins the race to acquire the original surface as it is being destroyed, it triggers an assertion. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-05-01snapshot: Hold a reference to target whilst queryingChris Wilson1-8/+43
Due to race with cow and accessing target from multiple threads, we need to be careful that we always acquire a reference for our access to the snapshot target. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-30Revert "Use pixman glyphs"Søren Sandmann Pedersen4-108/+212
This was pushed accidentally - apologies. This reverts commit 752c3b69e008b7d219da8cc5c657cf995732d3b8.
2012-04-30Use pixman glyphsSøren Sandmann Pedersen4-212/+108
2012-04-29version: Post release bump to 1.12.3Chris Wilson1-1/+1
2012-04-29version: bump for cairo-1.12.2 releaseChris Wilson2-1/+41
2012-04-29check-doc-syntax: Only parse the source files for incorrect tagsChris Wilson1-5/+8
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29check-doc-syntax: Fix handling of return value in make checkChris Wilson1-0/+2
2012-04-29path-stroke-boxes: Fix degenerate end-caps for anti-clockwise pathsChris Wilson1-32/+28
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29test: Update degenerate-solid-dash referenceChris Wilson6-0/+0
Looking at the base output for cairo-1.0 reveals we have an issue with the placement of degenerate end-caps.
2012-04-29gstate: Correctly compact degenerate dash segmentsChris Wilson1-19/+18
The danger of the incomplete test masking the failure to correctly skip the degenerate elements in the final dash state. Fixes the fixed degenerate-solid-dash. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29test: Fix array lengths for degenerate-solid-dashChris Wilson2-2/+2
The latter arrays were meant to test compaction. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29gstate: Reduce degenerate dash to solidChris Wilson1-5/+30
If the dash specifies that the pen is always on (i.e. the total of the off segments is zero), then we can eliminate the dash pattern. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29image: Add a little bit of debugging to show number of boxes being drawnChris Wilson1-3/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29test: Exercise degenerate dashes that are wholly solidChris Wilson3-0/+70
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29test: Exercise clip inversion imperfectionsChris Wilson5-0/+57
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-29Satisfy check-doc-syntax.awk for unimplemented functionsChris Wilson1-0/+4
./cairo.c (634): ERROR: cairo_set_opacity: missing 'Since' field ./cairo.c (3578): ERROR: cairo_get_opacity: missing 'Since' field Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-28image: Avoid overflow when computing lerp spans for a8Chris Wilson1-8/+8
Reported-by: Benjamin Otte <otte@redhat.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-27Update the remaining backends to handle a NULL extents for ↵Chris Wilson5-15/+25
_cairo_surface_get_source Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-27snapshot: Perform the cow under a mutexChris Wilson12-52/+96
In order to prevent a race between concurrent destroy and use in another thread, we need to acquire a reference to the snapshot->target under a mutex. Whilst we hold that reference, it prevents the internal destroy mechanism from freeing the memory we are using (if we have a pointer to the original surface) and the client drops their final reference. Oh boy, talk about opening a can of worms... Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2012-04-27image: Allow a snapshot to steal the original memory upon finishChris Wilson3-0/+22
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>