… | |
… | |
412 | Picture dst = XRenderCreatePicture (dpy, img->pm, img->format, 0, 0); |
412 | Picture dst = XRenderCreatePicture (dpy, img->pm, img->format, 0, 0); |
413 | |
413 | |
414 | if (alpha) |
414 | if (alpha) |
415 | { |
415 | { |
416 | XRenderColor rc = { 0, 0, 0, 0 }; |
416 | XRenderColor rc = { 0, 0, 0, 0 }; |
417 | XRenderFillRectangle (dpy, PictOpSrc, dst, &rc, 0, 0, w, h); |
417 | XRenderFillRectangle (dpy, PictOpSrc, dst, &rc, 0, 0, w, h);//TODO: split into four fillrectangles |
418 | XRenderComposite (dpy, PictOpSrc, src, None, dst, 0, 0, 0, 0, -x, -y, ref->w, ref->h); |
418 | XRenderComposite (dpy, PictOpSrc, src, None, dst, 0, 0, 0, 0, -x, -y, ref->w, ref->h); |
419 | } |
419 | } |
420 | else |
420 | else |
421 | XRenderComposite (dpy, PictOpSrc, src, None, dst, x, y, 0, 0, 0, 0, w, h); |
421 | XRenderComposite (dpy, PictOpSrc, src, None, dst, x, y, 0, 0, 0, 0, w, h); |
422 | |
422 | |
… | |
… | |
461 | |
461 | |
462 | for (int i = 0; i < 3; ++i) |
462 | for (int i = 0; i < 3; ++i) |
463 | for (int j = 0; j < 3; ++j) |
463 | for (int j = 0; j < 3; ++j) |
464 | xfrm.matrix [i][j] = XDoubleToFixed (matrix [i * 3 + j]); |
464 | xfrm.matrix [i][j] = XDoubleToFixed (matrix [i * 3 + j]); |
465 | |
465 | |
|
|
466 | #if 0 |
466 | xfrm.matrix [0][2] += XDoubleToFixed (x);//TODO |
467 | xfrm.matrix [0][2] -= XDoubleToFixed (x);//TODO |
467 | xfrm.matrix [0][3] += XDoubleToFixed (y); |
468 | xfrm.matrix [1][2] -= XDoubleToFixed (y); |
|
|
469 | #endif |
468 | |
470 | |
469 | XRenderSetPictureFilter (dpy, src, "good", 0, 0); |
471 | XRenderSetPictureFilter (dpy, src, "good", 0, 0); |
470 | XRenderSetPictureTransform (dpy, src, &xfrm); |
472 | XRenderSetPictureTransform (dpy, src, &xfrm); |
471 | XRenderComposite (dpy, PictOpSrc, src, None, dst, 0, 0, 0, 0, 0, 0, new_width, new_height); |
473 | XRenderComposite (dpy, PictOpSrc, src, None, dst, 0, 0, 0, 0, 0, 0, new_width, new_height); |
472 | |
474 | |
… | |
… | |
521 | return clone (); |
523 | return clone (); |
522 | |
524 | |
523 | rxvt_img *img = new rxvt_img (s, new_format, 0, 0, w, h, repeat); |
525 | rxvt_img *img = new rxvt_img (s, new_format, 0, 0, w, h, repeat); |
524 | img->alloc (); |
526 | img->alloc (); |
525 | |
527 | |
526 | printf ("convert %d to %d\n", format->direct.alphaMask, new_format->direct.alphaMask);//D |
|
|
527 | |
|
|
528 | Display *dpy = s->display->dpy; |
528 | Display *dpy = s->display->dpy; |
529 | Picture src = src_picture (); |
529 | Picture src = src_picture (); |
530 | Picture dst = XRenderCreatePicture (dpy, img->pm, new_format, 0, 0); |
530 | Picture dst = XRenderCreatePicture (dpy, img->pm, new_format, 0, 0); |
531 | int op = PictOpSrc; |
531 | int op = PictOpSrc; |
532 | |
532 | |