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

Comparing rxvt-unicode/src/rxvtimg.C (file contents):
Revision 1.60 by sf-exg, Fri Jun 8 10:12:45 2012 UTC vs.
Revision 1.64 by root, Fri Jun 8 21:33:32 2012 UTC

265 double *kernel = (double *)malloc (size * sizeof (double)); 265 double *kernel = (double *)malloc (size * sizeof (double));
266 XFixed *params = (XFixed *)malloc ((size + 2) * sizeof (XFixed)); 266 XFixed *params = (XFixed *)malloc ((size + 2) * sizeof (XFixed));
267 rxvt_img *img = new rxvt_img (s, format, x, y, w, h, repeat); 267 rxvt_img *img = new rxvt_img (s, format, x, y, w, h, repeat);
268 img->alloc (); 268 img->alloc ();
269 269
270 Picture src = src_picture ();
271
272 XRenderPictureAttributes pa; 270 XRenderPictureAttributes pa;
273 pa.repeat = RepeatPad; 271 pa.repeat = RepeatPad;
274 Picture dst = XRenderCreatePicture (dpy, img->pm, format, CPRepeat, &pa); 272 Picture src = XRenderCreatePicture (dpy, pm, format, CPRepeat, &pa);
273 Picture dst = XRenderCreatePicture (dpy, img->pm, format, 0, 0);
275 274
276 Pixmap tmp_pm = XCreatePixmap (dpy, pm, w, h, format->depth); 275 Pixmap tmp_pm = XCreatePixmap (dpy, pm, w, h, format->depth);
277 Picture tmp = XRenderCreatePicture (dpy, tmp_pm , format, CPRepeat, &pa); 276 Picture tmp = XRenderCreatePicture (dpy, tmp_pm , format, CPRepeat, &pa);
278 XFreePixmap (dpy, tmp_pm); 277 XFreePixmap (dpy, tmp_pm);
279 278
332 331
333 return mask; 332 return mask;
334} 333}
335 334
336void 335void
337rxvt_img::brightness (unsigned short r, unsigned short g, unsigned short b, unsigned short a) 336rxvt_img::brightness (uint16_t r, uint16_t g, uint16_t b, uint16_t a)
338{ 337{
339 Display *dpy = s->display->dpy; 338 Display *dpy = s->display->dpy;
340 Picture src = create_xrender_mask (dpy, pm, True); 339 Picture src = create_xrender_mask (dpy, pm, True);
341 Picture dst = XRenderCreatePicture (dpy, pm, format, 0, 0); 340 Picture dst = XRenderCreatePicture (dpy, pm, format, 0, 0);
342 341
352 XRenderFreePicture (dpy, src); 351 XRenderFreePicture (dpy, src);
353 XRenderFreePicture (dpy, dst); 352 XRenderFreePicture (dpy, dst);
354} 353}
355 354
356void 355void
357rxvt_img::contrast (unsigned short r, unsigned short g, unsigned short b, unsigned short a) 356rxvt_img::contrast (uint16_t r, uint16_t g, uint16_t b, uint16_t a)
358{ 357{
359 if (!(s->display->flags & DISPLAY_HAS_RENDER_MUL)) 358 if (!(s->display->flags & DISPLAY_HAS_RENDER_MUL))
359 {
360 rxvt_warn ("rxvt_img::contrast operation not supported on this display, RENDER extension too old.\n");
360 return; 361 return;
362 }
361 363
362 Display *dpy = s->display->dpy; 364 Display *dpy = s->display->dpy;
363 Picture src = create_xrender_mask (dpy, pm, True); 365 Picture src = create_xrender_mask (dpy, pm, True);
364 Picture dst = XRenderCreatePicture (dpy, pm, format, 0, 0); 366 Picture dst = XRenderCreatePicture (dpy, pm, format, 0, 0);
365 367
408 if (x == 0 && y == 0 && w == ref->w && h == ref->h) 410 if (x == 0 && y == 0 && w == ref->w && h == ref->h)
409 return clone (); 411 return clone ();
410 412
411 Display *dpy = s->display->dpy; 413 Display *dpy = s->display->dpy;
412 414
415 // add an alpha channel if...
413 bool alpha = !format->direct.alphaMask 416 bool alpha = !format->direct.alphaMask // pixmap has none yet
414 && (x || y) 417 && (x || y) // we need one because of non-zero offset
415 && repeat == RepeatNone; 418 && repeat == RepeatNone; // and we have no good pixels to fill with
416 419
417 rxvt_img *img = new rxvt_img (s, alpha ? find_alpha_format_for (dpy, format) : format, 0, 0, w, h, repeat); 420 rxvt_img *img = new rxvt_img (s, alpha ? find_alpha_format_for (dpy, format) : format, 0, 0, w, h, repeat);
418 img->alloc (); 421 img->alloc ();
419 422
420 Picture src = src_picture (); 423 Picture src = src_picture ();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines