Earle F. Philhower III wrote:
Howdy Fabrizio, Harold.
Thanks for the good debug Fabrizio! The 24bpp icon handling was something I never could test: I couldn't find any apps that had 24bpp icons, all I found were 1- 15-, 16-, or 32-bit ones. I was assuming the X server always used a packed format, but PixmapBytePad() looks to be the proper way of handling this. (Can I ask how you knew? I did a Google on the macro and didn't come up with anything of interest, I only found stuff in the header files themselves...)
Harold, the xStride calc looks great
Glad that you think it is correct. I was worried that it might break something.
but by removing the conversion of 15-bpp modes into effective 16-bpp modes will break 15bpp icon handling. 15-bpp modes are handled exactly the same as 16bpp modes, except they are not bit-packed (there's 1 extra unused bit every pixel) so you can't do (bpp/8).
Upon closer inspection I think you'll see that the logic of the statements is unchanged. I was working on adding an additional case for 24-bpp and reworked the if/else pairs to more a "set default/override default it needed" structure. Looked cleaner to me, so I left it :)
Let me know if you still think it is changed or not after another inspection.
Harold
