… | |
… | |
922 | |
922 | |
923 | void |
923 | void |
924 | rxvt_color::get (rgba &color) const |
924 | rxvt_color::get (rgba &color) const |
925 | { |
925 | { |
926 | #if XFT |
926 | #if XFT |
927 | //TODO premultiplied alpha?? |
927 | |
928 | color.r = c.color.red; |
928 | color.r = c.color.red; |
929 | color.g = c.color.green; |
929 | color.g = c.color.green; |
930 | color.b = c.color.blue; |
930 | color.b = c.color.blue; |
931 | color.a = c.color.alpha; |
931 | color.a = c.color.alpha; |
|
|
932 | |
|
|
933 | if (IN_RANGE_INC (color.a, 0x0001, 0xfffe)) |
|
|
934 | { |
|
|
935 | color.r = color.r * 0xffff / color.a; |
|
|
936 | color.g = color.g * 0xffff / color.a; |
|
|
937 | color.b = color.b * 0xffff / color.a; |
|
|
938 | } |
|
|
939 | |
932 | #else |
940 | #else |
|
|
941 | |
933 | color.r = c.red; |
942 | color.r = c.red; |
934 | color.g = c.green; |
943 | color.g = c.green; |
935 | color.b = c.blue; |
944 | color.b = c.blue; |
936 | color.a = rgba::MAX_CC; |
945 | color.a = rgba::MAX_CC; |
|
|
946 | |
937 | #endif |
947 | #endif |
938 | } |
948 | } |
939 | |
949 | |
940 | void |
950 | void |
941 | rxvt_color::get (XColor &color) const |
951 | rxvt_color::get (XColor &color) const |