… | |
… | |
217 | |
217 | |
218 | rxvt_img * |
218 | rxvt_img * |
219 | rxvt_img::convert_to (XRenderPictFormat *new_format) |
219 | rxvt_img::convert_to (XRenderPictFormat *new_format) |
220 | { |
220 | { |
221 | Display *dpy = s->display->dpy; |
221 | Display *dpy = s->display->dpy; |
222 | Pixmap new_pm = XCreatePixmap (dpy, pm, w, h, new_format->depth); |
222 | rxvt_img *img = new rxvt_img (s,new_format,w, h); |
223 | Picture src = XRenderCreatePicture (dpy, pm, format, 0, 0); |
223 | Picture src = XRenderCreatePicture (dpy, pm, format, 0, 0); |
224 | Picture dst = XRenderCreatePicture (dpy, new_pm, new_format, 0, 0); |
224 | Picture dst = XRenderCreatePicture (dpy, img->pm, new_format, 0, 0); |
225 | |
225 | |
226 | XRenderComposite (dpy, PictOpSrc, src, None, dst, 0, 0, 0, 0, 0, 0, w, h); |
226 | XRenderComposite (dpy, PictOpSrc, src, None, dst, 0, 0, 0, 0, 0, 0, w, h); |
227 | |
227 | |
228 | XRenderFreePicture (dpy, src); |
228 | XRenderFreePicture (dpy, src); |
229 | XRenderFreePicture (dpy, dst); |
229 | XRenderFreePicture (dpy, dst); |
230 | |
230 | |
231 | rxvt_img *img = new rxvt_img ( |
|
|
232 | s, |
|
|
233 | new_format, |
|
|
234 | w, |
|
|
235 | h, |
|
|
236 | new_pm |
|
|
237 | ); |
|
|
238 | |
|
|
239 | return img; |
231 | return img; |
240 | } |
232 | } |
241 | |
233 | |
242 | #endif |
234 | #endif |
243 | |
235 | |