mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-09 04:58:04 +02:00
boilerplate: Allox xlib-fallback to build without RENDER
This surface doesn't use RENDER and should produce the same results when cairo-xlib is compiled without any support for RENDER.
This commit is contained in:
parent
d209b40c64
commit
8f7078eba7
1 changed files with 4 additions and 68 deletions
|
|
@ -269,8 +269,10 @@ cairo_boilerplate_xlib_surface_disable_render (cairo_surface_t *abstract_surface
|
|||
|
||||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if CAIRO_HAS_XLIB_SURFACE
|
||||
/* The xlib-fallback target differs from the xlib target in two ways:
|
||||
*
|
||||
* 1. It creates its surfaces without relying on the Render extension
|
||||
|
|
@ -376,60 +378,6 @@ _cairo_boilerplate_xlib_fallback_create_surface (const char *name,
|
|||
|
||||
return surface;
|
||||
}
|
||||
|
||||
static cairo_surface_t *
|
||||
_cairo_boilerplate_xlib_reference_create_surface (const char *name,
|
||||
cairo_content_t content,
|
||||
double width,
|
||||
double height,
|
||||
double max_width,
|
||||
double max_height,
|
||||
cairo_boilerplate_mode_t mode,
|
||||
int id,
|
||||
void **closure)
|
||||
{
|
||||
xlib_target_closure_t *xtc;
|
||||
Display *dpy;
|
||||
cairo_surface_t *surface;
|
||||
const char *display;
|
||||
|
||||
display = getenv ("CAIRO_REFERENCE_DISPLAY");
|
||||
if (display == NULL) {
|
||||
return _cairo_boilerplate_xlib_fallback_create_surface (name, content,
|
||||
width, height,
|
||||
max_width,
|
||||
max_height,
|
||||
mode, id,
|
||||
closure);
|
||||
}
|
||||
|
||||
*closure = xtc = xcalloc (1, sizeof (xlib_target_closure_t));
|
||||
|
||||
width = ceil (width);
|
||||
if (width < 1)
|
||||
width = 1;
|
||||
|
||||
height = ceil (height);
|
||||
if (height < 1)
|
||||
height = 1;
|
||||
|
||||
xtc->dpy = dpy = XOpenDisplay (display);
|
||||
if (xtc->dpy == NULL) {
|
||||
free (xtc);
|
||||
CAIRO_BOILERPLATE_DEBUG (("Failed to open display: %s\n", display));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (mode == CAIRO_BOILERPLATE_MODE_TEST)
|
||||
surface = _cairo_boilerplate_xlib_test_create_surface (dpy, content, width, height, xtc);
|
||||
else /* mode == CAIRO_BOILERPLATE_MODE_PERF */
|
||||
surface = _cairo_boilerplate_xlib_perf_create_surface (dpy, content, width, height, xtc);
|
||||
|
||||
if (surface == NULL || cairo_surface_status (surface))
|
||||
_cairo_boilerplate_xlib_cleanup (xtc);
|
||||
|
||||
return surface;
|
||||
}
|
||||
#endif
|
||||
|
||||
static const cairo_boilerplate_target_t targets[] = {
|
||||
|
|
@ -437,7 +385,7 @@ static const cairo_boilerplate_target_t targets[] = {
|
|||
/* Acceleration architectures may make the results differ by a
|
||||
* bit, so we set the error tolerance to 1. */
|
||||
{
|
||||
"xlib", "xlib", NULL, "xlib-reference",
|
||||
"xlib", "xlib", NULL, "xlib-fallback",
|
||||
CAIRO_SURFACE_TYPE_XLIB, CAIRO_CONTENT_COLOR_ALPHA, 1,
|
||||
"cairo_xlib_surface_create_with_xrender_format",
|
||||
_cairo_boilerplate_xlib_create_surface,
|
||||
|
|
@ -449,7 +397,7 @@ static const cairo_boilerplate_target_t targets[] = {
|
|||
TRUE, FALSE, FALSE
|
||||
},
|
||||
{
|
||||
"xlib", "xlib", NULL, "xlib-reference",
|
||||
"xlib", "xlib", NULL, "xlib-fallback",
|
||||
CAIRO_SURFACE_TYPE_XLIB, CAIRO_CONTENT_COLOR, 1,
|
||||
"cairo_xlib_surface_create_with_xrender_format",
|
||||
_cairo_boilerplate_xlib_create_surface,
|
||||
|
|
@ -460,18 +408,6 @@ static const cairo_boilerplate_target_t targets[] = {
|
|||
_cairo_boilerplate_xlib_synchronize,
|
||||
FALSE, FALSE, FALSE
|
||||
},
|
||||
{
|
||||
"xlib-reference", "xlib", NULL, NULL,
|
||||
CAIRO_SURFACE_TYPE_XLIB, CAIRO_CONTENT_COLOR, 1,
|
||||
"cairo_xlib_surface_create",
|
||||
_cairo_boilerplate_xlib_reference_create_surface,
|
||||
NULL, NULL,
|
||||
NULL, /* get_image */
|
||||
cairo_surface_write_to_png,
|
||||
_cairo_boilerplate_xlib_cleanup,
|
||||
_cairo_boilerplate_xlib_synchronize,
|
||||
FALSE, FALSE, FALSE
|
||||
},
|
||||
#endif
|
||||
#if CAIRO_HAS_XLIB_SURFACE
|
||||
/* This is a fallback surface which uses xlib fallbacks instead of
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue