[cairo] Cairo on older Windows

Carl Worth cworth at cworth.org
Mon Nov 6 14:00:30 PST 2006


On Mon, 6 Nov 2006 13:34:39 -0800 (PST), Jeff Smith wrote:
> I keep hearing about Firefox 3.0 making a major shift to Cairo, but
> that this will result in dropping support for Windows 95/98/Me.  Is
> this really a Cairo issue?

I've been told that cairo's win32 backend relies on functions that do
not exist in Windows 95 or Windows 98, (I have no idea about Windows
Me). One such function is SetWorldTransform, but there could be more.

>                            If so, is there an explaination
> somewhere as to why Cairo cannot (or will not) be supported on these
> older iterations of Windows?

One approach to making cairo work for ancient versions of Windows
would be to basically use cairo's image backend for everything and
then just blit the results back and forth as necessary. A similar
approach is used for the xlib backend for old X servers without the
Render extension for example.

It won't necessarily be fast, but it will actually function at
least. Making it be as fast as possible would require working to
minimize the blits in both directions, and to really do this well
might require the application to tell cairo when a particular
operation is "done". (But if the application is going to be modified
for performance here, it would probably be easier to leave the cairo
API alone and just make the application use cairo's image surfaces
directly.)

If someone were to attempt a fix like that, it should probably be
pretty simple--basically just a matter of returning
CAIRO_STATUS_UNSUPPORTED from the right places in the win32 backend,
and then letting existing fallback paths in cairo take care of all the
rendering to image surfaces and blitting.

Then the only other step would be to fix the code so that it could
still be compiled/linked in the absence of the missing functions.
(That's something that hasn't been done for the xlib backend where
compiling cairo does require the XRender client headers even if cairo
will be used only with an X server that doesn't have the Render
extension).

-Carl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/cairo/attachments/20061106/97485ba5/attachment.pgp


More information about the cairo mailing list