On 10/11/12 15:34, Jonathan Morton wrote: > On Thu, 11 Oct 2012 12:56:57 +0200, Gerd Hoffmann <[email protected]> > wrote: >> How are the 32bpp image formats like PIXMAN_x8r8g8b8 defined to look >> like in memory? Fixed format, i.e. always the same no matter whenever >> the box is big or little endian? Or native endian? > > Native endian. The format is defined in terms of bitfields in a 32-bit > integer.
So PIXMAN_x8r8g8b8 @ bigendian box equals PIXMAN_b8g8r8x8 @ little endian box, correct? > The 16-bit formats (such as r5g6b5) are also defined > similarly. Ok. > The 24-bit formats are not. So PIXMAN_r8g8b8 has the red byte first no matter what the endian is, correct? > So to convert to or from a particular on-disk image format, or one > which is defined in terms of bytes (as OpenGL does), you could use > ntohl() and htonl() from the sockets subsystem. Or pick the format depending on the machine byteorder when passing the pixel blob as-is to pixman_image_create_bits (well, for 32-bit formats at least, the 16-bit ones don't have a green bitfield any more when byteswapped ...). cheers, Gerd _______________________________________________ Pixman mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/pixman
