… | |
… | |
635 | |
635 | |
636 | return false; |
636 | return false; |
637 | #else |
637 | #else |
638 | if (screen->visual->c_class == TrueColor) |
638 | if (screen->visual->c_class == TrueColor) |
639 | { |
639 | { |
640 | p = (rgba.r * (screen->visual->red_mask >> ctz (screen->visual->red_mask )) |
640 | p = ((rgba.r * ((1 << screen->visual->bits_per_rgb) - 1) |
641 | / rxvt_rgba::MAX_CC) << ctz (screen->visual->red_mask ) |
641 | / rxvt_rgba::MAX_CC) << ctz (screen->visual->red_mask )) |
642 | | (rgba.g * (screen->visual->green_mask >> ctz (screen->visual->green_mask)) |
642 | | ((rgba.g * ((1 << screen->visual->bits_per_rgb) - 1) |
643 | / rxvt_rgba::MAX_CC) << ctz (screen->visual->green_mask) |
643 | / rxvt_rgba::MAX_CC) << ctz (screen->visual->green_mask)) |
644 | | (rgba.b * (screen->visual->blue_mask >> ctz (screen->visual->blue_mask )) |
644 | | ((rgba.b * ((1 << screen->visual->bits_per_rgb) - 1) |
645 | / rxvt_rgba::MAX_CC) << ctz (screen->visual->blue_mask ); |
645 | / rxvt_rgba::MAX_CC) << ctz (screen->visual->blue_mask )); |
646 | |
646 | |
647 | return true; |
647 | return true; |
648 | } |
648 | } |
649 | else |
649 | else |
650 | { |
650 | { |