[cairo-bugs] [Bug 12210] build breaks on compilation after successful configuration

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Aug 29 16:09:49 PDT 2007


http://bugs.freedesktop.org/show_bug.cgi?id=12210





------- Comment #5 from sick_soul at yahoo.it  2007-08-29 16:09 PST -------
(In reply to comment #4)
> If you want to give it a try, just start #if CAIRO_HAS_XLIB_XRENDER_SURFACE
> stuff out until it compiles and works...
> 

I started to look at it, I am thinking about splitting cairo-xlib-surface.c
in two, stuffing everything that requires render extensions
into cairo-xlib-surface-xrender.c, and possibly export
an interface in cairo-xlib-surface-xrender.h to make available to
cairo-xlib-surface.c . Still very cloudy, but the idea is to clutter
with preprocessor conditionals as little as possible. 

ATM I have wrapped part of the struct _cairo_xlib_surface declaration in
cairo-xlib-surface-private.h in an if like this:

#if CAIRO_HAS_XLIB_XRENDER_SURFACE
    int render_major;
    int render_minor;
    Picture dst_picture, src_picture;
    XRenderPictFormat *xrender_format;
    XTransform xtransform;
#endif

but maybe something better will come to mind.
Tomorrow I'll start going through the functions in the .c in more
detail, trying to understand how this thing works.

Btw, I've noticed that functions are referenced in a backend table/structure,
and in some cases some of these functions only have an implementation that
requires render extensions. Should I just put NULL there in these cases
and hope for the best? (that applications still work?)

For example, I singled out

_cairo_xlib_surface_create_similar,
_cairo_xlib_surface_fill_rectangles,
_cairo_xlib_surface_composite_trapezoids,
_cairo_xlib_surface_is_similar

as currently being render-ext-only (or so they look to me).
Does this make any sense? The domain is very unfamiliar to me.

Claudio


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.


More information about the cairo-bugs mailing list