]> Dogcows Code - chaz/openbox/commitdiff
center argb textures (icons for eg.) within the area given if they are not the same...
authorDana Jansens <danakj@orodu.net>
Sat, 26 May 2007 17:35:17 +0000 (17:35 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 26 May 2007 17:35:17 +0000 (17:35 +0000)
render/image.c

index f878933274d88a25345c261269e21153abcb6ab6..3c08444db14116ddf32f604fcc7d262cb8711358 100644 (file)
@@ -142,10 +142,13 @@ void RrImageDraw(RrPixel32 *target, RrTextureRGBA *rgba,
         source = rgba->data;
     }
 
-    /* copy source -> dest, and apply the alpha channel */
+    /* copy source -> dest, and apply the alpha channel.
+
+       center the image if it is smaller than the area */
     col = 0;
     num_pixels = dw * dh;
-    dest = target + area->x + target_w * area->y;
+    dest = target + area->x + (area->width - dw) / 2 +
+        (target_w * (area->y + (area->height - dh) / 2));
     while (num_pixels-- > 0) {
         guchar alpha, r, g, b, bgr, bgg, bgb;
 
This page took 0.027092 seconds and 4 git commands to generate.