… | |
… | |
707 | c.green = color.g; |
707 | c.green = color.g; |
708 | c.blue = color.b; |
708 | c.blue = color.b; |
709 | |
709 | |
710 | if (screen->visual->c_class == TrueColor) |
710 | if (screen->visual->c_class == TrueColor) |
711 | { |
711 | { |
712 | c.pixel = (color.r * (screen->visual->red_mask >> ctz (screen->visual->red_mask )) |
712 | c.pixel = (color.r >> (16 - popcount (screen->visual->red_mask )) << ctz (screen->visual->red_mask )) |
713 | / rgba::MAX_CC) << ctz (screen->visual->red_mask ) |
713 | | (color.g >> (16 - popcount (screen->visual->green_mask)) << ctz (screen->visual->green_mask)) |
714 | | (color.g * (screen->visual->green_mask >> ctz (screen->visual->green_mask)) |
|
|
715 | / rgba::MAX_CC) << ctz (screen->visual->green_mask) |
|
|
716 | | (color.b * (screen->visual->blue_mask >> ctz (screen->visual->blue_mask )) |
714 | | (color.b >> (16 - popcount (screen->visual->blue_mask )) << ctz (screen->visual->blue_mask )); |
717 | / rgba::MAX_CC) << ctz (screen->visual->blue_mask ); |
|
|
718 | |
715 | |
719 | return true; |
716 | return true; |
720 | } |
717 | } |
721 | else if (XAllocColor (screen->dpy, screen->cmap, &c)) |
718 | else if (XAllocColor (screen->dpy, screen->cmap, &c)) |
722 | return true; |
719 | return true; |