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.182 by sf-exg, Sun Dec 25 17:01:21 2011 UTC vs.
Revision 1.183 by sf-exg, Sun Dec 25 17:05:53 2011 UTC

1327 1327
1328 root_pixmap = new_root_pixmap; 1328 root_pixmap = new_root_pixmap;
1329} 1329}
1330# endif /* ENABLE_TRANSPARENCY */ 1330# endif /* ENABLE_TRANSPARENCY */
1331 1331
1332#if defined(ENABLE_TRANSPARENCY) && !defined(HAVE_AFTERIMAGE)
1333static void shade_ximage (Visual *visual, XImage *ximage, int shade, const rgba &c);
1334# endif
1335
1336bool 1332bool
1337rxvt_term::bg_render () 1333rxvt_term::bg_render ()
1338{ 1334{
1339 unsigned long tr_flags = 0; 1335 unsigned long tr_flags = 0;
1340 1336
1370 if (result) 1366 if (result)
1371 { 1367 {
1372 /* our own client-side tinting */ 1368 /* our own client-side tinting */
1373 //if (tr_flags & BG_NEEDS_TINT) 1369 //if (tr_flags & BG_NEEDS_TINT)
1374 if (1) 1370 if (1)
1375 {
1376 rgba c (rgba::MAX_CC,rgba::MAX_CC,rgba::MAX_CC);
1377 if (bg_flags & BG_TINT_SET)
1378 tint.get (c);
1379 shade_ximage (DefaultVisual (dpy, display->screen), result, shade, c); 1371 tint_ximage (DefaultVisual (dpy, display->screen), result);
1380 }
1381 1372
1382 GC gc = XCreateGC (dpy, vt, 0UL, NULL); 1373 GC gc = XCreateGC (dpy, vt, 0UL, NULL);
1383 1374
1384 if (gc) 1375 if (gc)
1385 { 1376 {
1448 tmp += (mask >> sh) * low; 1439 tmp += (mask >> sh) * low;
1449 lookup[i] = (tmp / 0xffff) << sh; 1440 lookup[i] = (tmp / 0xffff) << sh;
1450 } 1441 }
1451} 1442}
1452 1443
1453static void 1444void
1454shade_ximage (Visual *visual, XImage *ximage, int shade, const rgba &c) 1445rxvt_term::tint_ximage (Visual *visual, XImage *ximage)
1455{ 1446{
1456 int sh_r, sh_g, sh_b; 1447 int sh_r, sh_g, sh_b;
1457 uint32_t mask_r, mask_g, mask_b; 1448 uint32_t mask_r, mask_g, mask_b;
1458 uint32_t *lookup, *lookup_r, *lookup_g, *lookup_b; 1449 uint32_t *lookup, *lookup_r, *lookup_g, *lookup_b;
1459 unsigned short low; 1450 unsigned short low;
1524 break; 1515 break;
1525 default: 1516 default:
1526 return; /* we do not support this color depth */ 1517 return; /* we do not support this color depth */
1527 } 1518 }
1528 1519
1520 rgba c (rgba::MAX_CC, rgba::MAX_CC, rgba::MAX_CC);
1521
1522 if (bg_flags & BG_TINT_SET)
1523 tint.get (c);
1524
1529 /* prepare limits for color transformation (each channel is handled separately) */ 1525 /* prepare limits for color transformation (each channel is handled separately) */
1530 if (shade > 100) 1526 if (shade > 100)
1531 { 1527 {
1532 shade = 200 - shade;
1533
1534 high.r = c.r * shade / 100; 1528 high.r = c.r * (200 - shade) / 100;
1535 high.g = c.g * shade / 100; 1529 high.g = c.g * (200 - shade) / 100;
1536 high.b = c.b * shade / 100; 1530 high.b = c.b * (200 - shade) / 100;
1537 1531
1538 low = 0xffff * (100 - shade) / 100; 1532 low = 0xffff * (shade - 100) / 100;
1539 } 1533 }
1540 else 1534 else
1541 { 1535 {
1542 high.r = c.r * shade / 100; 1536 high.r = c.r * shade / 100;
1543 high.g = c.g * shade / 100; 1537 high.g = c.g * shade / 100;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines