… | |
… | |
639 | char eos; |
639 | char eos; |
640 | int skip; |
640 | int skip; |
641 | |
641 | |
642 | if (1 <= sscanf (name, "[%hd]%n", &c.a, &skip)) |
642 | if (1 <= sscanf (name, "[%hd]%n", &c.a, &skip)) |
643 | { |
643 | { |
|
|
644 | printf ("X %d\n", c.a); |
644 | c.a = lerp<int, int, int> (0, rxvt_rgba::MAX_CC, c.a); |
645 | c.a = lerp<int, int, int> (0, rxvt_rgba::MAX_CC, c.a); |
645 | name += skip; |
646 | name += skip; |
|
|
647 | printf ("y %04x\n", c.a); |
646 | } |
648 | } |
647 | else |
649 | else |
648 | c.a = rxvt_rgba::MAX_CC; |
650 | c.a = rxvt_rgba::MAX_CC; |
649 | |
651 | |
650 | // parse the non-standard rgba format |
652 | // parse the non-standard rgba format |
… | |
… | |
747 | #else |
749 | #else |
748 | XFreeColors (screen->xdisp, screen->cmap, &p, 1, AllPlanes); |
750 | XFreeColors (screen->xdisp, screen->cmap, &p, 1, AllPlanes); |
749 | #endif |
751 | #endif |
750 | } |
752 | } |
751 | |
753 | |
752 | rxvt_color |
754 | void |
753 | rxvt_color::fade (rxvt_screen *screen, int percent, const rxvt_rgba &to) |
755 | rxvt_color::fade (rxvt_screen *screen, int percent, rxvt_color &result, const rxvt_rgba &to) |
754 | { |
756 | { |
755 | rxvt_rgba c; |
757 | rxvt_rgba c; |
756 | get (screen, c); |
758 | get (screen, c); |
757 | |
759 | |
758 | rxvt_color faded; |
760 | result.set ( |
759 | faded.set ( |
|
|
760 | screen, |
761 | screen, |
761 | rxvt_rgba ( |
762 | rxvt_rgba ( |
762 | lerp (to.r, c.r, percent), |
763 | lerp (c.r, to.r, percent), |
763 | lerp (to.g, c.g, percent), |
764 | lerp (c.g, to.g, percent), |
764 | lerp (to.b, c.b, percent), |
765 | lerp (c.b, to.b, percent), |
765 | lerp (to.a, c.a, percent) |
766 | lerp (c.a, to.a, percent) |
766 | ) |
767 | ) |
767 | ); |
768 | ); |
768 | |
|
|
769 | return faded; |
|
|
770 | } |
769 | } |
771 | |
770 | |