[cairo] 8 bit pseudo color missing.

Carl Worth cworth at cworth.org
Wed Mar 22 10:18:44 PST 2006


On Wed, 15 Mar 2006 13:59:42 +0100, "Eric Faurot" wrote:
> So for the record, could somebody with intimate knowledge of cairo internals
> explain what code needs to be written, and where to hook it up in the
> current code?  It would help somebody really interrested in fixing
> that to know, at least, where to begin.

The primary place where things are missing is within the pixman code,
(that is the directory cairo/pixman/src from a cairo checkout or tar
file).

The pixman code was derived from the fb code in the X server.

The X server does deal with indexed color operations and so to some
extent the "necessary code" already exists within the X server. When I
ported fb over to pixman to make a library usable outside of the X
server, I simply discarded anything related to indexed color
operations, since I had no interest in doing the work necessary to
make it functional.

The discarding may have included #ifdefs to prevent code from being
compiled, or it may have been simply not copying portions of the code
needed. I really couldn't say for sure now. But a good place to start
would be comparing the pixman code to the fb code in the X server.

Finally, I put "necessary code" code in quotation marks since it's
really not easy to define exactly how these operations should actually
work in the land of indexed color. When cairo is computing alpha
coverage and compositing surfaces together, a palette of 256 colors is
extremely limiting. Particularly if cairo doesn't get to decide that
palette itself.

I believe what the X server does is pre-allocate a color cube that is
uniform (in some sense) to allow it a reasonable chance of making
something work.

Meanwhile, "fixing" cairo might not be the best approach in all
situations of interest here. It might be more interesting to provide
cairo with a more capable X server, and then convert its output to the
8-bit limited X server in one way or another.

Good luck,

-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/20060322/80934ed8/attachment.pgp


More information about the cairo mailing list