Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Master #1

Open
wants to merge 88 commits into
base: master
Choose a base branch
from
Open

Master #1

wants to merge 88 commits into from

Conversation

aguai
Copy link

@aguai aguai commented Mar 14, 2017

No description provided.

metux and others added 30 commits January 13, 2016 17:07
These functions have been accidentially removed by commit:
494cfd7.

They're still needed by the DRM backend.
(will be used by subsequent patches)

Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Reviewed-by: Bryce Harrington <[email protected]>
Cc: Uli Schlachter <[email protected]>
…es_intersect()

Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Reviewed-by: Bryce Harrington <[email protected]>
Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
We need to link against libdrm to use its functions.

Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Reviewed-by: Bryce Harrington <[email protected]>
This adds _cairo_atomic_int_get_relaxed and _cairo_atomic_int_set_relaxed which
are meant to have a behaviour of relaxed read/writes in C11's memory model. This
patch also uses these new function to fix a data race with freed_pool_t's |top|
data member.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=90318
Signed-off-by: Wan-Teh Chang <[email protected]>
Signed-off-by: Uli Schlachter <[email protected]>
The surface_transform was already used surface_replay_with_clip, as the
matrix is obviously needed for the clip. But now, because of the
optimization done in commit 09b42c7, it's also needed by
replay_and_create_regions: get_target_extents clips the target surface
for performance issues, and therefore needs the surface_transform matrix
to get the right clipping surface.

Signed-off-by: Guillaume Ayoub <[email protected]>
rsvg_pixbuf_from_file() is deprecated, replaced by
rsvg_handle_new_from_file() + rsvg_handle_render_cairo().
Test case for bug 89232 - painting a recording surface to a
pdf/ps surface omits objects on the recording surface with negative
coordinates even though the pattern matrix has transformed the objects
to within the page extents.

The image surface also fails when the recording surface is bounded.
bounded_fill fails returning extents origin of (0, 0) instead of (-150, -100)
Fixes record-neg-bounded-extents (image only) and
recording-ink-extents.
When an unbounded recording surface is used multiple times with
different extents for each operation we need the XObject containing
the recording surface to have the same origin for each operation. This
is not possible when the recording surface is converted to PDF
coordinates because each operation has different extents resulting in
a different origin when the Y-axis is flipped (since the flip matrix
depends on the recording surface height which for unbounded surfaces
depends on the extents of the operation that paints the recording
surface).

Switching to cairo coordinates by emitting a Y-axis flip matrix as the
first object of each page allows the recording surface to be emitted
in cairo coordinates. This results in the same origin for all
operations using the recording surface XObject.
Modify PDF surface to allow surface extents to have negative x, y.
When emitting recording surfaces, set the surface extents to the
recording extents.
ref images were creating using Debian Jessie 64-bit and latest poppler.
If XShmGetImage() fails, the code tries to continue with its normal,
non-shared-memory path. However, the image variable, which was previously set to
NULL, now points to an already-destroyed surface, causing a double-free when the
function cleans up after itself (actually, its an assertion failure because the
reference count of the surface is zero, but technically this is still a double
free).

Fix this by setting image=NULL after destroying the surface that this refers to,
to make sure this surface will not be destroyed again.

While we are here (multiple changes in a single commit are bad...), also fix the
cleanup done in bail. In practice, &image->base should be safe when image==NULL,
because this just adds some offset to the pointer (the offset here is actually
zero, so this doesn't do anything at all). However, the C standard does not
require this to be safe, so let's handle this case specially.

Note that anything that is fixed by this change is still buggy, because the only
reason why XShmGetImage() could fail would be BadDrawable, meaning that the
target we draw to does not exist or was already destroyed. This patch will
likely just cause X11 errors elsewhere and drawing to (possible) invalid
drawables is not supported by cairo anyway. This means that if SHM fails, the
following fallback code has a high chance of failing, too.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=91967
Signed-off-by: Uli Schlachter <[email protected]>
The code correct, but the compiler can't check that and thinks
there're uninitialized variables.

Perhaps we could rewrite it in a better way, so the compiler
can do better (even arch specific) optimizations.

Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Signed-off-by: Uli Schlachter <[email protected]>
Signed-off-by: Enrico Weigelt, metux IT consult <[email protected]>
Signed-off-by: Uli Schlachter <[email protected]>
adrianjohnson and others added 30 commits October 1, 2016 17:30
"can be get" is incorrect grammar; "can be gotten" would be better, but
active voice is best.

Signed-off-by: Bryce Harrington <[email protected]>
"This function returns the type a pattern." is obviously missing 'of',
but this can be stated more succinctly with active voice.

Signed-off-by: Bryce Harrington <[email protected]>
On systems using GNU's strings implementation, 'strings -' causes a scan
of the whole file, which is equivalent to 'strings -a'.  However, in
POSIX passing '-' as the first argument to 'strings' is declared
unspecified, and thus may break the build on systems that use a
different POSIX strings implementation.

Patch from Jung-uk Kim

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=88639
Signed-off-by: Bryce Harrington <[email protected]>
To support differentiating between GLES v2 and v3, rename the flavor
enum to be version specific, as CAIRO_GL_FLAVOR_ES2.

Then, when GLES v3 support is introduced we can add it as a distinct
flavor enum (i.e. CAIRO_GL_FLAVOR_ES3).

Signed-off-by: Bryce Harrington <[email protected]>
The code for extracting font glyphs was replaced in
70cc8f2 with an implementation based
on CoreText, which is not available on MacOSX 10.4.  This commit
restores automatic detection of which API should be used by means of
dynamic linking.
This constant seems to be unused since commit af9fbd1
from 2011.

Signed-off-by: Uli Schlachter <[email protected]>
The code here wants to ignore errors for a specific request. To do so,
it sets a no-op error handler. However, it could happen that some
previous request caused an error and this error will also be ignored by
the no-op error handler.

To avoid this, call XSync() before setting the error handler. This makes
sure that all pending errors are handled.

Signed-off-by: Uli Schlachter <[email protected]>
Reviewed-by: Chris Wilson <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.