… | |
… | |
57 | typedef int render_repeat_mode; |
57 | typedef int render_repeat_mode; |
58 | |
58 | |
59 | #if HAVE_PIXBUF |
59 | #if HAVE_PIXBUF |
60 | typedef GdkPixbuf * urxvt__pixbuf; |
60 | typedef GdkPixbuf * urxvt__pixbuf; |
61 | #endif |
61 | #endif |
|
|
62 | #if HAVE_IMG |
62 | typedef rxvt_img * urxvt__img; |
63 | typedef rxvt_img * urxvt__img; |
63 | typedef rxvt_img::nv rxvt_img__nv; |
64 | typedef rxvt_img::nv rxvt_img__nv; |
64 | |
65 | |
65 | ///////////////////////////////////////////////////////////////////////////// |
66 | ///////////////////////////////////////////////////////////////////////////// |
66 | |
67 | |
… | |
… | |
105 | |
106 | |
106 | return c; |
107 | return c; |
107 | } |
108 | } |
108 | |
109 | |
109 | ///////////////////////////////////////////////////////////////////////////// |
110 | ///////////////////////////////////////////////////////////////////////////// |
|
|
111 | #endif |
110 | |
112 | |
111 | static wchar_t * |
113 | static wchar_t * |
112 | sv2wcs (SV *sv) |
114 | sv2wcs (SV *sv) |
113 | { |
115 | { |
114 | STRLEN len; |
116 | STRLEN len; |
… | |
… | |
2214 | if (img) // TODO: cannot be false |
2216 | if (img) // TODO: cannot be false |
2215 | { |
2217 | { |
2216 | img = img->clone (); // own the img |
2218 | img = img->clone (); // own the img |
2217 | |
2219 | |
2218 | if (img->repeat != RepeatNormal) // X11 only supports RepeatNormal as bg pixmap |
2220 | if (img->repeat != RepeatNormal) // X11 only supports RepeatNormal as bg pixmap |
2219 | img->sub_rect (0, 0, |
2221 | img->sub_rect (0, 0, |
2220 | border ? THIS->vt_width : THIS->szHint.width, |
2222 | border ? THIS->vt_width : THIS->szHint.width, |
2221 | border ? THIS->vt_height : THIS->szHint.height) |
2223 | border ? THIS->vt_height : THIS->szHint.height) |
2222 | ->replace (img); |
2224 | ->replace (img); |
2223 | |
2225 | |
2224 | // just in case, should usually be a nop |
2226 | // just in case, should usually be a nop |
2225 | img->reify () |
2227 | img->reify () |
2226 | ->replace (img); |
2228 | ->replace (img); |
2227 | |
2229 | |
… | |
… | |
2313 | RETVAL = THIS->pm; |
2315 | RETVAL = THIS->pm; |
2314 | OUTPUT: |
2316 | OUTPUT: |
2315 | RETVAL |
2317 | RETVAL |
2316 | |
2318 | |
2317 | void |
2319 | void |
2318 | rxvt_img::fill (SV *c) |
2320 | rxvt_img::fill (SV *c, int x = 0, int y = 0, int w = THIS->w, int h = THIS->h) |
|
|
2321 | PROTOTYPE: $;$$$$ |
2319 | INIT: |
2322 | INIT: |
2320 | rgba cc = parse_rgba (c, THIS->s); |
2323 | rgba cc = parse_rgba (c, THIS->s); |
2321 | C_ARGS: cc |
2324 | C_ARGS: cc, x, y, w, h |
2322 | |
2325 | |
2323 | void |
2326 | void |
2324 | rxvt_img::DESTROY () |
2327 | rxvt_img::DESTROY () |
2325 | CODE: |
2328 | CODE: |
2326 | delete THIS; |
2329 | delete THIS; |
… | |
… | |
2360 | rxvt_img * |
2363 | rxvt_img * |
2361 | rxvt_img::sub_rect (int x, int y, int width, int height) |
2364 | rxvt_img::sub_rect (int x, int y, int width, int height) |
2362 | |
2365 | |
2363 | rxvt_img * |
2366 | rxvt_img * |
2364 | rxvt_img::blur (int rh, int rv) |
2367 | rxvt_img::blur (int rh, int rv) |
|
|
2368 | |
|
|
2369 | rxvt_img * |
|
|
2370 | rxvt_img::muladd (rxvt_img::nv mul, rxvt_img::nv add) |
2365 | |
2371 | |
2366 | rxvt_img * |
2372 | rxvt_img * |
2367 | rxvt_img::transform (rxvt_img::nv p11, rxvt_img::nv p12, rxvt_img::nv p13, rxvt_img::nv p21, rxvt_img::nv p22, rxvt_img::nv p23, rxvt_img::nv p31, rxvt_img::nv p32, rxvt_img::nv p33) |
2373 | rxvt_img::transform (rxvt_img::nv p11, rxvt_img::nv p12, rxvt_img::nv p13, rxvt_img::nv p21, rxvt_img::nv p22, rxvt_img::nv p23, rxvt_img::nv p31, rxvt_img::nv p32, rxvt_img::nv p33) |
2368 | INIT: |
2374 | INIT: |
2369 | rxvt_img::nv matrix[3][3] = { |
2375 | rxvt_img::nv matrix[3][3] = { |