backport the changes to render/ from the alttab branch (commit 3592046b2b26e05ee94c0dd0fed5b7fd5475c198) in master, as the iconcache changes depend on this git show 3592046b -- render
Dana Jansens danakj@orodu.net
2 files changed,
19 insertions(+),
4 deletions(-)
M
render/render.c
→
render/render.c
@@ -132,10 +132,20 @@ RrPixmapMaskDraw(a->pixmap, &a->texture[i].data.mask, &tarea);
break; case RR_TEXTURE_RGBA: g_assert(!transferred); - RrImageDraw(a->surface.pixel_data, - &a->texture[i].data.rgba, - a->w, a->h, - &tarea); + { + RrRect narea = tarea; + RrTextureRGBA *rgb = &a->texture[i].data.rgba; + if (rgb->twidth) + narea.width = MIN(tarea.width, rgb->twidth); + if (rgb->theight) + narea.height = MIN(tarea.height, rgb->theight); + narea.x += rgb->tx; + narea.y += rgb->ty; + RrImageDraw(a->surface.pixel_data, + &a->texture[i].data.rgba, + a->w, a->h, + &narea); + } force_transfer = 1; break; }
M
render/render.h
→
render/render.h
@@ -167,6 +167,11 @@ /* cached scaled so we don't have to scale often */
gint cwidth; gint cheight; RrPixel32 *cache; +/* size and position to draw at */ + gint tx; + gint ty; + gint twidth; + gint theight; }; struct _RrTextureLineArt {