> x = curent_destination_byte; > z = x & 00000111b > x = z | y
> You have to do this to do every single pixel write with 15bit color. With > 16bit color all the bytes are even so it's just > dest = val; No. Depth 15 is stored in the framebuffer at 16 bpp; i.e. there's one pixel per 16 bits, with one bit wasted. There is an issue similar to the one you describe at depth 24/24 bpp (as opposed to depth 24/32 bpp) where a single pixel write has to be split into one byte and one halfword writes. (In XFree86 4; XFree86 3 would do three single-byte writes.) Juliusz