Re: cairo release 1.12.4 now available

Reinhard Tartler <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <87624do6dt.fsf__6201.01542813263$1354918846$gmane$org@faui43f.informatik.uni-erlangen.de>
On Sa, Okt 06, 2012 at 11:56:13 (CEST), Chris Wilson wrote:

> On Sat, 6 Oct 2012 11:31:14 +0200, Andreas Radke <[email protected]> wrote:
>> I've packaged the new release and it works well in ArchLinux with my
>> local Awesome WM setup.
>> 
>> Remote connections using OpenNX are broken when used with Xfce.
>> Xfce-panel and menu keep crashing instantly until I downgrade to 1.12.2
>> on the server.
>
> There is not enough information here to begin to access the cause. A
> stack trace would be a good start.

It seems that cairo unconditionally assumes that the xserver does
support the latest version of the Xrender extension:

http://cgit.freedesktop.org/cairo/tree/src/cairo-xlib-display.c?id=1.12.2#n217

This assumption does not hold for many non-Xorg Xservers, including
nxagent, which is used by NX and derivatives like OpenNX, FreeNX or
X2Go:

http://code.x2go.org/gitweb?p=nx-libs.git;a=blob;f=nx-X11/include/extensions/render.h;h=691c63fdecfcbc29c3625fd2b85ae1400a7b64e6;hb=HEAD#l109

Note that the defines for Operators only available in version 0.11 in
Xorg are *not* included:

/*
 * Operators only available in version 0.11
 */
#define PictOpBlendMinimum                          0x30
#define PictOpMultiply                              0x30
#define PictOpScreen                                0x31
#define PictOpOverlay                               0x32
#define PictOpDarken                                0x33
#define PictOpLighten                               0x34
#define PictOpColorDodge                            0x35
#define PictOpColorBurn                             0x36
#define PictOpHardLight                             0x37
#define PictOpSoftLight                             0x38
#define PictOpDifference                            0x39
#define PictOpExclusion                             0x3a
#define PictOpHSLHue                                0x3b
#define PictOpHSLSaturation                         0x3c
#define PictOpHSLColor                              0x3d
#define PictOpHSLLuminosity                         0x3e
#define PictOpBlendMaximum                          0x3e


Also, note that nxagent does not use pixman (which is the software
implementation that Xorg uses nowadays), but the old, previous
implementation of low-level pixel rendering, AFAIUI for example:

http://code.x2go.org/gitweb?p=nx-libs.git;a=blob;f=nx-X11/programs/Xserver/fb/fbcompose.c;h=f8169995fdb39b83dd71f978e28e00e87abf1572;hb=HEAD#l3395

I would assume that there are still a number of other non-Xorg X11
servers (most of them commercial) that do not support these
operations. 

Chris, is there any chance to fix/change cairo to work also without
operators that are only available in version 0.11?


-- 
Gruesse/greetings,
Reinhard Tartler, KeyID 945348A4

-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.