[cairo] Deprecating CAIRO_FORMAT_RGB16_565 and adding cairo-deprecated.h

Carl Worth cworth at cworth.org
Mon Sep 11 10:39:31 PDT 2006

On Sun, 10 Sep 2006 21:02:22 +0200, Jay Vaughan wrote:
> .. count me in the "hand raised to know what is needed to *implement*
> RGB565" rather than remove it, also .. I mean, there's lots of places
> such a format, plus cairo, are useful (hand-held LCD devices running
> Linux galore ..)

The drawing code currently in pixman should already support rendering
to an RGB565 format image. The parts of cairo that do not currently
support 565 can be found by compiling current cairo with a recent
version of gcc and looking for the warnings that complain about
CAIRO_FORMAT_RGB16_565 not being handled in a switch statement. The
current cases are:

	1. cairo-png.c:write_to_png - Need code to write an RGB565
           image out as a PNG file. The easy way would be to
           cairo_paint to a RGB24 surface first and then write that
           out with the existing code. The hard way would be to
           actually emit a 16-bit PNG file.

	2. cairo-xlib-surface.c:_CAIRO_FORMAT_TO_XRENDER_FORMAT - In
           this case, it's a matter of chasing down an
           XRenderPictFormat for the RGB565 cairo format. This is
           harder than the current code which uses
           XRenderFindStandardFormat since RGB565 is not a standard
           Render format. A functional, (though uninteresting), thing
           to do here would be to just fail and let the caller use an
           image fallback. A more interesting approach would be to
           chase down a 16-bit visual (if available) in the X server,
           and then use XRenderFindVisualFormat with that.

	3. cairo-xlib-surface.c:_cairo_xlib_surface_add_glyph - I
           haven't chased down what would need to happen here. I'll
           leave that as an exercise for the reader.

One other thing that should be kept in mind with adding support for
RGB565 is that it would put an additional required format on what
would need to be implemented in any pixman replacement.

-------------- 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/20060911/eb2c16db/attachment.pgp

More information about the cairo mailing list