glamor: Fill out glamor_get_color_4f_from_pixel() a bit.
This commit is contained in:
parent
519103565c
commit
8016135ec7
|
@ -158,17 +158,33 @@ void
|
|||
glamor_get_color_4f_from_pixel(PixmapPtr pixmap, unsigned long fg_pixel,
|
||||
GLfloat *color)
|
||||
{
|
||||
if (pixmap->drawable.depth < 24) {
|
||||
ErrorF("pixmap with bad depth\n");
|
||||
color[0] = 1.0;
|
||||
switch (pixmap->drawable.depth) {
|
||||
case 1:
|
||||
color[0] = 0.0;
|
||||
color[1] = 0.0;
|
||||
color[2] = 1.0;
|
||||
color[3] = 1.0;
|
||||
} else {
|
||||
color[2] = 0.0;
|
||||
color[3] = fg_pixel & 0x01;
|
||||
break;
|
||||
case 8:
|
||||
color[0] = 0.0;
|
||||
color[1] = 0.0;
|
||||
color[2] = 0.0;
|
||||
color[3] = (fg_pixel & 0xff) / 255.0;
|
||||
break;
|
||||
case 24:
|
||||
case 32:
|
||||
color[0] = ubyte_to_float(fg_pixel >> 16);
|
||||
color[1] = ubyte_to_float(fg_pixel >> 8);
|
||||
color[2] = ubyte_to_float(fg_pixel >> 0);
|
||||
color[3] = ubyte_to_float(fg_pixel >> 24);
|
||||
break;
|
||||
default:
|
||||
ErrorF("pixmap with bad depth: %d\n", pixmap->drawable.depth);
|
||||
color[0] = 1.0;
|
||||
color[1] = 0.0;
|
||||
color[2] = 1.0;
|
||||
color[3] = 1.0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue