summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-03-18gitignore: negate gitignore for static pkgconfig filesMatt Sealey1-0/+4
Commit 781f253 adds a rule cairo-*.*.* to .gitignore in the root dir. Unfortunately this matches several src/cairo-*.pc.in files in the src directory. The build system requires these files to be present, but the rule is allowing them to be ignored. For example, when extracting a cgit snapshot tarball and checking it into another git repository, these files get left behind. Any accidental changes to these files will go unnoticed by a 'git status' (possibly creating bad installs) and any intentional changes could not be committed (git commit -a will miss them, and every one will need to be forced). This is not really desirable. We don't want to unignore *.pc.in here since there are many, many autogenerated files with this name, and the cairo-*.*.* rule is in general quite useful and doesn't warrant modification (although it could be made a little more specific), so we just make these 4 files a special case and negate the match with full filenames in src/. Signed-off-by: Matt Sealey <matt@genesi-usa.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-03-18Adding a simple usage statement to cairo-perf-chartMatthew Fischer1-0/+29
Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-03-15test: Fix CAIRO_REF_DIRUli Schlachter2-4/+3
Ever since the test output was moved from test/ to test/output/, using CAIRO_REF_DIR to make the test suite succeed no longer works. The test suite was looking for the wrong file names. This patch makes this work again. However, I am not sure that this really is the correct fix. It just seems to work. :-) Reported-by: Darxus <darxus@chaosreigns.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-03-15cff-subset: Fix allocation of width arraysMarek Kasik1-2/+2
fd_default_width and fd_nominal_width are arrays of doubles not arrays of ints.
2013-03-15mempool: Reduce an assert into an error return for get_buddy()Chris Wilson1-1/+2
If we ask for a buddy that is outside of our allocation that is an error that should not happen with a power-of-two allocated zone... However, since it has been seen in the wild, we can safely return that there is no buddy rather than die in a too-late assert. Reported-by: Anton Eliasson <devel@antoneliasson.se> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-03-14stroke: Use round-joins near inflection points of splinesMartin Robinson1-0/+36
Similar to b7bd5ae4f3da44131261711bb236cd7aa24a3ae3, but applied to the fallback stroke shaper.
2013-03-14stroke: Fix large line widths for fallback stroke shaperMartin Robinson2-8/+116
Fix the test case line-width-tolerance for the fallback stroke shaper. Instead of drawing quads between spline points, draw triangle based on the actual spline edges. This roughly follows the approach of the tristrip and polygonal shapers.
2013-03-14path: Fix a bug in line intersectionMartin Robinson1-12/+27
Before the intersection code was not taking into account that both quotients are required to be in the range (0,1) for the segments to intersect or handling the case of negative numerators and denominators.
2013-03-08gl: Setup operands when the vertex size changesMartin Robinson1-12/+17
Previously _cairo_gl_composite_setup_vbo was overwriting the old context vertex_size, while _cairo_gl_context_setup_operand was relying on it to determine if the vertex size changed. Instead of a fragile ordering of statements, pass whether the vertex size changed as an argument to enforce the calling order via method parameters.
2013-03-08gl: Fix typo s/bool/cairo_bool_t/Chris Wilson1-1/+1
One quickly gets used to having stdbool.h available.
2013-03-08gl: Export query for EGLContext and EGLDisplay from deviceHenry Song2-0/+39
Similar to glx, add query for the EGLContext and EGLDisplay to egl-based cairo devices.
2013-03-08[FT] Prefer downscaling bitmap glyphs to upscalingBehdad Esfahbod1-3/+12
Say, you have bitmap strikes for sizes 50ppem and 100ppem. To render at 60ppem, it's much better to downscale the 100ppem bitmap than upscale 50ppem one. Prefer downscaling.
2013-03-01pdf: Fix crashJana Saout1-1/+1
Bug 61451
2013-02-24xlib: Fix invocation of XRenderFindFormat()Chris Wilson1-1/+1
The 'count' parameter is an indication to libXrender of the number of matches to skip before reporting (rather than a limit on the number to report). As we only want the first match, always pass 0. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-19pdf: add missing 'endobj' to shading dictAdrian Johnson1-2/+4
https://bugs.launchpad.net/ubuntu/+source/libcairo/+bug/1051939
2013-02-19image: Compare against the true size of the embedded bufferChris Wilson1-1/+1
When querying whether the run is small enough to fit inside the pre-allocated temporary buffer, we need to avoid comparing against sizeof(buf) as buf is a variable length array and so sizeof() is meaningless. Reported-by: Edward Zimmermann <Edward.Zimmermann@cib.de> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-15win32: Free the fallback upon finishChris Wilson1-0/+3
Zozó Teki pointed out that we leak the fallback surface upon finish in case it was active at the time as the preceding flush would only clear the damage and not decouple the fallback surface. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-15gl: disable GL_DITHERHenry Song1-0/+2
GL_DITHER is enabled by default by spec. Leaving GL_DITHER enabled causes color pixel mismatch on some drivers by comparing uploading then readPixels and original image.
2013-02-12test: Exercise replaying a recording surface through a flip matrixChris Wilson11-0/+494
2013-02-12path: Fix bbox computation for negative scale factorsChris Wilson1-0/+11
The fast path for transforming a path by a simple scale factor, forgot to fix up the orientation of the box if that scale factor was negative. Reported-by: Edward Zimmermann <Edward.Zimmermann@cib.de> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-12recording: Avoid indirection through indices array if not reducedChris Wilson1-1/+1
If we don't discard any elements, then the index array is simply a 1:1 mapping of the element array, and we may as well bypass it. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-12spans: Mark the surface as cleared in preparing for recording surface playbackChris Wilson1-1/+6
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-10Post release version bump to 1.12.15Chris Wilson1-1/+1
2013-02-101.12.14 releaseChris Wilson2-1/+33
2013-02-10tests: Update reference images after adjustments to polygon line clippingChris Wilson11-0/+0
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-08win32: Clear the similar-image before returning to the userChris Wilson1-1/+9
Our userspace API mandates that surfaces created for the user are cleared before they are returned. Make it so for the win32 similar image constructor. Reported-by: Michael Henning <drawoc@darkrefraction.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=60519 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-08xlib: Only apply the dst offset to the glyph strings onceChris Wilson1-6/+6
The elts offset is a delta from the previous glyph coordinate. So by subtracting the dst origin everytime, we were accumulating a glyph position error. Instead we just want to offset the starting coordinate and then always use relative positions. Reported-by: Theo Veenker <T.J.G.Veenker@uu.nl> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-08polygon: Avoid computing the unused intersection coordinatesChris Wilson1-5/+8
If we only ignore the result of the computed boundary intersection, because the edge is inside that boundary, then we can simply forgo the calculation. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-08polygon: Only rely on the computed boundary intersections for crossing edgesChris Wilson1-10/+25
If we need to extrapolate the edge to the boundary, then we run the risk of an overflow for an immaterial result. So if the edge does not cross the boundary, we can simply use the corresponding end-point and not emit the boundary segment. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=60489 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-07gl: Mark up _cairo_gl_composite_set_operator* as privateChris Wilson1-2/+2
Add the cairo_private markup to hide the PLT entries and to keep make check happy. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-07gl/spans: Handle SOURCE operations with opaque sources.Ravi Nanjundappa1-0/+7
SOURCE operations with an opaque are equivalent to OVER. This can prevent us from falling back in certain cases. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-07win32: Fix is_win98()Chris Wilson1-3/+3
Since the translation into a separate function, its condition was reversed: that is almost everybody thought they were on a win98 machine and so had no working AlphaBlend(). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-07image: Substitute OVER spans for SOURCE with an opaque patternChris Wilson1-2/+10
Based on an idea from Ravi Nanjundappa Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-06gl/msaa: Properly fall back when using CLEAR operatorMartin Robinson1-0/+7
There are some situations that the MSAA compositor doesn't support using the CLEAR operator. We should properly fall back in those cases.
2013-02-05type1-subset: in latin subsets replace glyph names with standard namesAdrian Johnson1-2/+17
When using WinAnsiEncoding in PDF the glyphs are keyed by glyph name. We need to ensure the correct names are used and can't assume the glyph names in the font are correct. Bug 60248
2013-02-04gl: do not force flush everytime uploading a glyph image to glyph cacheHenry Song6-15/+24
In normal cases, we want to flush pending operations reading from the texture before modifying its contents. However during uploading of glyphs into the glyph cache, we repeatedly modify the texture as we construct the vbo (whilst referencing it for that operation). We track unused areas in the glyph cache so that if we run out of space, we can explicitly flush the pending glyphs and start afresh and avoid having to flush the operation in common case.
2013-02-04gl: Include the vertex ident in the shader cache hashChris Wilson1-19/+30
As we may specialise the vertex program depending upon details of the fragment shader, and may have more than one program for the same combination of fragment sources, we need to include the vertex tag in the cache entry. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-04gl: Replace manual vertex transformation with VS computation of texcoordsChris Wilson8-63/+162
Not only is our point transformation code is quite slow (well at least compared to a real GPU), but by deriving the texture coordinates from the vertex position we can elide the multiple arrays that we need to construct and pass to GL - improving performance by eliminating CPU overhead from needless transforms and data shovelling. However, not all vertex emission is suitable. For instance, for glyphs we need to emit discontiguous texture coordinates for each glyph, but span generation is suitable - which fortuitously also has the largest vertex density and so benefits the most. The only real concern is for hardware without true vertex shader support (e.g. i915) but there we are already invoking the VS to transform the vertex into the viewport. We would need to eliminate that transform as well as manually compute the texture coordinates in order to eliminate the vertex recomputation pass. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-03qt: Update for fallback compositorChris Wilson1-70/+140
We now need to explicitly manage fallbacks and to provide an implementation for map-to-image/unmap-image.
2013-02-02surface: Prevent reads from the user-data arrays during teardownChris Wilson1-1/+7
In a similar fashion to the previous commit, we also need to be wary of users simply trying to read from a potentially freed user-data array. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-02surface: Prevent writes to the user-data arrays during teardownChris Wilson1-0/+9
As we cleanup the user-data arrays, we call the user provided destroy notifier callbacks. These callbacks are at liberty to write back into the parent surface, and in particular try to write into the arrays that we have just freed. This causes hard to control and fairly unpredictable use-after-frees in the client, so lets just rule out the dangerous behaviour. References:https://bugzilla.mozilla.org/show_bug.cgi?id=722975 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-02-01image: Add a convenience function for creating an image from another's dataChris Wilson2-0/+62
The GL backend would like to extract a rectangle from another surface and convert it to a different pixel format. The _cairo_image_surface_create_from_image() does that by returning a new image that has the contents of the specified rectangle in the source Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-01-31NEWS: fix a couple of typosChris Wilson1-2/+2
Reported-by: Thierry Vignaud
2013-01-31Post release version bump to 1.12.13Chris Wilson1-1/+1
2013-01-311.12.12 releaseChris Wilson2-1/+25
2013-01-31test: Refresh refs for aa noise following reduction of the 2-stage compositingChris Wilson34-0/+0
A side effect of commit c986a7310bb06582b7d8a566d5f007ba4e5e75bf Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Thu Jan 24 08:55:54 2013 +0000 image: Enable inplace compositing with opacities for general routines is that we should in theory be reducing the rounding errors when compositing coverage. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-01-31image: Add a reference for the clone's parent imageChris Wilson1-1/+8
We use the parent as a flag during map-to-image/umap-image that the resultant image came from a fallback rather than as direct call to the backend's map_to_image(). Whilst we use it as a simple flag, we need to make sure the parent surface obeys the reference counting semantics and is consistent for all callers. Unlike other users of the parent pointer, there is no resource sharing between the two surfaces. Reported-by: Henry Song <henry.song@samsung.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-01-31perf: Synchronize before stopping the timersChris Wilson1-0/+3
Fixes a regression from commit 2855ff4666922f2c38505414270d47f659b0d499 Author: Andrea Canciani <ranma42@gmail.com> Date: Wed Aug 31 16:42:03 2011 +0200 perf: Reuse cairo-time which dropped the essential call to synchronize when refactoring the code. Reported-by: Siarhei Siamashka <siarhei.siamashka@gmail.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-01-29xlib/shm: More clarification of seqno requiredChris Wilson1-3/+3
Everytime I read the predicate wrong, but hopefully, this time I have it right! Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-01-29xlib/shm: Clarify testing of seqnoChris Wilson2-5/+17
Rename the seqno tests into seqno_passed(), seqno_before() and seqno_after() in order to clarify their semantics. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>