ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/background.C
(Generate patch)

Comparing rxvt-unicode/src/background.C (file contents):
Revision 1.124 by sf-exg, Tue Nov 23 16:37:36 2010 UTC vs.
Revision 1.125 by sf-exg, Tue Nov 23 18:31:13 2010 UTC

1131 c.g = (c.g * shade) / 100; 1131 c.g = (c.g * shade) / 100;
1132 c.b = (c.b * shade) / 100; 1132 c.b = (c.b * shade) / 100;
1133 } 1133 }
1134 else 1134 else
1135 { 1135 {
1136 c.r = ((0xffff - c.r) * (200 - shade)) / 100; 1136 c.r = (c.r * (200 - shade)) / 100;
1137 c.g = ((0xffff - c.g) * (200 - shade)) / 100; 1137 c.g = (c.g * (200 - shade)) / 100;
1138 c.b = ((0xffff - c.b) * (200 - shade)) / 100; 1138 c.b = (c.b * (200 - shade)) / 100;
1139 } 1139 }
1140 1140
1141 XRenderPictFormat *solid_format = XRenderFindStandardFormat (dpy, PictStandardARGB32); 1141 XRenderPictFormat *solid_format = XRenderFindStandardFormat (dpy, PictStandardARGB32);
1142 XRenderPictFormat *format = XRenderFindVisualFormat (dpy, visual); 1142 XRenderPictFormat *format = XRenderFindVisualFormat (dpy, visual);
1143 XRenderPictureAttributes pa; 1143 XRenderPictureAttributes pa;
1157 1157
1158 if (mask_pic && overlay_pic && back_pic) 1158 if (mask_pic && overlay_pic && back_pic)
1159 { 1159 {
1160 XRenderColor mask_c; 1160 XRenderColor mask_c;
1161 1161
1162 mask_c.red = mask_c.green = mask_c.blue = shade > 100 ? 0xffff : 0; 1162 mask_c.red = mask_c.green = mask_c.blue = 0;
1163 mask_c.alpha = 0xffff; 1163 mask_c.alpha = 0xffff;
1164 XRenderFillRectangle (dpy, PictOpSrc, overlay_pic, &mask_c, 0, 0, 1, 1); 1164 XRenderFillRectangle (dpy, PictOpSrc, overlay_pic, &mask_c, 0, 0, 1, 1);
1165 1165
1166 mask_c.alpha = 0; 1166 mask_c.alpha = 0;
1167 mask_c.red = 0xffff - c.r; 1167 mask_c.red = 0xffff - c.r;
1168 mask_c.green = 0xffff - c.g; 1168 mask_c.green = 0xffff - c.g;
1169 mask_c.blue = 0xffff - c.b; 1169 mask_c.blue = 0xffff - c.b;
1170 XRenderFillRectangle (dpy, PictOpSrc, mask_pic, &mask_c, 0, 0, 1, 1); 1170 XRenderFillRectangle (dpy, PictOpSrc, mask_pic, &mask_c, 0, 0, 1, 1);
1171 XRenderComposite (dpy, PictOpOver, overlay_pic, mask_pic, back_pic, 0, 0, 0, 0, 0, 0, width, height); 1171 XRenderComposite (dpy, PictOpOver, overlay_pic, mask_pic, back_pic, 0, 0, 0, 0, 0, 0, width, height);
1172
1173 if (shade > 100)
1174 {
1175 mask_c.red = mask_c.green = mask_c.blue = 0xffff * (shade - 100) / 100;
1176 mask_c.alpha = 0;
1177 XRenderFillRectangle (dpy, PictOpSrc, overlay_pic, &mask_c, 0, 0, 1, 1);
1178
1179 XRenderComposite (dpy, PictOpOver, overlay_pic, None, back_pic, 0, 0, 0, 0, 0, 0, width, height);
1180 }
1181
1172 ret = true; 1182 ret = true;
1173 } 1183 }
1174 1184
1175 XRenderFreePicture (dpy, mask_pic); 1185 XRenderFreePicture (dpy, mask_pic);
1176 XRenderFreePicture (dpy, overlay_pic); 1186 XRenderFreePicture (dpy, overlay_pic);
1576 /* prepare limits for color transformation (each channel is handled separately) */ 1586 /* prepare limits for color transformation (each channel is handled separately) */
1577 if (shade > 100) 1587 if (shade > 100)
1578 { 1588 {
1579 shade = 200 - shade; 1589 shade = 200 - shade;
1580 1590
1581 high.r = (65535 - c.r) * shade / 100; 1591 high.r = c.r * shade / 100;
1582 high.g = (65535 - c.g) * shade / 100; 1592 high.g = c.g * shade / 100;
1583 high.b = (65535 - c.b) * shade / 100; 1593 high.b = c.b * shade / 100;
1584 1594
1585 low.r = 65535 - high.r; 1595 low.r = 65535 * (100 - shade) / 100;
1586 low.g = 65535 - high.g; 1596 low.g = 65535 * (100 - shade) / 100;
1587 low.b = 65535 - high.b; 1597 low.b = 65535 * (100 - shade) / 100;
1588 } 1598 }
1589 else 1599 else
1590 { 1600 {
1591 high.r = c.r * shade / 100; 1601 high.r = c.r * shade / 100;
1592 high.g = c.g * shade / 100; 1602 high.g = c.g * shade / 100;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines