]> Dogcows Code - chaz/openbox/blobdiff - render/render.c
change the menu plugin interface, no need for the create/destroy functions any more.
[chaz/openbox] / render / render.c
index 87706c8eea72c9d83e06d70758499968c5c8cbf4..3327effaac7a695eb6a42f7e98c523573c3932c7 100644 (file)
 #  include <stdlib.h>
 #endif
 
-static void RrPixel32_to_pixmap(RrAppearance *l, gint x, gint y, gint w, gint h);
+static void pixel_data_to_pixmap(RrAppearance *l,
+                                 gint x, gint y, gint w, gint h);
 
 void RrPaint(RrAppearance *l, Window win, gint w, gint h)
 {
     int i, transferred = 0, sw;
     RrPixel32 *source, *dest;
     Pixmap oldp;
-    Rect tarea; /* area in which to draw textures */
+    RrRect tarea; /* area in which to draw textures */
     gboolean resized;
 
     if (w <= 0 || h <= 0) return;
 
     resized = (l->w != w || l->h != h);
 
-    if (resized) {
-        oldp = l->pixmap; /* save to free after changing the visible pixmap */
-        l->pixmap = XCreatePixmap(RrDisplay(l->inst),
-                                  RrRootWindow(l->inst),
-                                  w, h, RrDepth(l->inst));
-    } else
-        oldp = None;
+    oldp = l->pixmap; /* save to free after changing the visible pixmap */
+    l->pixmap = XCreatePixmap(RrDisplay(l->inst),
+                              RrRootWindow(l->inst),
+                              w, h, RrDepth(l->inst));
 
     g_assert(l->pixmap != None);
     l->w = w;
@@ -47,24 +45,22 @@ void RrPaint(RrAppearance *l, Window win, gint w, gint h)
                                RrVisual(l->inst), RrColormap(l->inst));
     g_assert(l->xftdraw != NULL);
 
-    g_free(l->surface.RrPixel_data);
-    l->surface.RrPixel_data = g_new(RrPixel32, w * h);
+    g_free(l->surface.pixel_data);
+    l->surface.pixel_data = g_new(RrPixel32, w * h);
 
     if (l->surface.grad == RR_SURFACE_PARENTREL) {
         g_assert (l->surface.parent);
         g_assert (l->surface.parent->w);
 
         sw = l->surface.parent->w;
-        source = (l->surface.parent->surface.RrPixel_data + l->surface.parentx +
-                  sw * l->surface.parenty);
-        dest = l->surface.RrPixel_data;
+        source = (l->surface.parent->surface.pixel_data +
+                  l->surface.parentx + sw * l->surface.parenty);
+        dest = l->surface.pixel_data;
         for (i = 0; i < h; i++, source += sw, dest += w) {
             memcpy(dest, source, w * sizeof(RrPixel32));
         }
-    } else if (l->surface.grad == RR_SURFACE_SOLID)
-        gradient_solid(l, 0, 0, w, h);
-    else
-        gradient_render(&l->surface, w, h);
+    } else
+        RrRender(l, w, h);
 
     RECT_SET(tarea, 0, 0, w, h);
     if (l->surface.grad != RR_SURFACE_PARENTREL) {
@@ -93,7 +89,7 @@ void RrPaint(RrAppearance *l, Window win, gint w, gint h)
             if (!transferred) {
                 transferred = 1;
                 if (l->surface.grad != RR_SURFACE_SOLID)
-                    RrPixel32_to_pixmap(l, 0, 0, w, h);
+                    pixel_data_to_pixmap(l, 0, 0, w, h);
             }
             if (l->xftdraw == NULL) {
                 l->xftdraw = XftDrawCreate(RrDisplay(l->inst), l->pixmap, 
@@ -106,15 +102,15 @@ void RrPaint(RrAppearance *l, Window win, gint w, gint h)
             if (!transferred) {
                 transferred = 1;
                 if (l->surface.grad != RR_SURFACE_SOLID)
-                    RrPixel32_to_pixmap(l, 0, 0, w, h);
+                    pixel_data_to_pixmap(l, 0, 0, w, h);
             }
             if (l->texture[i].data.mask.color->gc == None)
-                color_allocate_gc(l->texture[i].data.mask.color);
+                RrColorAllocateGC(l->texture[i].data.mask.color);
             RrPixmapMaskDraw(l->pixmap, &l->texture[i].data.mask, &tarea);
         break;
         case RR_TEXTURE_RGBA:
-            image_draw(l->surface.RrPixel_data,
-                       &l->texture[i].data.rgba, &tarea);
+            RrImageDraw(l->surface.pixel_data,
+                        &l->texture[i].data.rgba, &tarea);
         break;
         }
     }
@@ -122,7 +118,7 @@ void RrPaint(RrAppearance *l, Window win, gint w, gint h)
     if (!transferred) {
         transferred = 1;
         if (l->surface.grad != RR_SURFACE_SOLID)
-            RrPixel32_to_pixmap(l, 0, 0, w, h);
+            pixel_data_to_pixmap(l, 0, 0, w, h);
     }
 
 
@@ -192,7 +188,9 @@ RrAppearance *RrAppearanceCopy(RrAppearance *orig)
 
     spc->interlaced = spo->interlaced;
     spc->border = spo->border;
-    spc->RrPixel_data = NULL;
+    spc->parent = NULL;
+    spc->parentx = spc->parenty = 0;
+    spc->pixel_data = NULL;
 
     copy->textures = orig->textures;
     copy->texture = g_memdup(orig->texture,
@@ -217,14 +215,15 @@ void RrAppearanceFree(RrAppearance *a)
         RrColorFree(p->border_color);
         RrColorFree(p->bevel_dark);
         RrColorFree(p->bevel_light);
-        g_free(p->RrPixel_data);
+        g_free(p->pixel_data);
 
         g_free(a);
     }
 }
 
 
-static void RrPixel32_to_pixmap(RrAppearance *l, gint x, gint y, gint w, gint h)
+static void pixel_data_to_pixmap(RrAppearance *l,
+                                 gint x, gint y, gint w, gint h)
 {
     RrPixel32 *in, *scratch;
     Pixmap out;
@@ -233,16 +232,16 @@ static void RrPixel32_to_pixmap(RrAppearance *l, gint x, gint y, gint w, gint h)
                       ZPixmap, 0, NULL, w, h, 32, 0);
     g_assert(im != NULL);
 
-    in = l->surface.RrPixel_data;
+    in = l->surface.pixel_data;
     out = l->pixmap;
 
-    im->byte_order = render_endian;
+    im->byte_order = LSBFirst;
 /* this malloc is a complete waste of time on normal 32bpp
    as reduce_depth just sets im->data = data and returns
 */
     scratch = g_new(RrPixel32, im->width * im->height);
     im->data = (char*) scratch;
-    reduce_depth(l->inst, in, im);
+    RrReduceDepth(l->inst, in, im);
     XPutImage(RrDisplay(l->inst), out,
               DefaultGC(RrDisplay(l->inst), RrScreen(l->inst)),
               im, 0, 0, x, y, w, h);
@@ -267,13 +266,9 @@ void RrMinsize(RrAppearance *l, gint *w, gint *h)
             break;
         case RR_TEXTURE_TEXT:
             m = RrFontMeasureString(l->texture[i].data.text.font,
-                                    l->texture[i].data.text.string,
-                                    l->texture[i].data.text.shadow,
-                                    l->texture[i].data.text.offset);
+                                    l->texture[i].data.text.string);
             *w = MAX(*w, m);
-            m = RrFontHeight(l->texture[i].data.text.font,
-                             l->texture[i].data.text.shadow,
-                             l->texture[i].data.text.offset);
+            m = RrFontHeight(l->texture[i].data.text.font);
             *h += MAX(*h, m);
             break;
         case RR_TEXTURE_RGBA:
@@ -336,7 +331,7 @@ gboolean RrPixmapToRGBA(const RrInstance *inst,
     }
 
     *data = g_new(RrPixel32, pw * ph);
-    increase_depth(inst, *data, xi);
+    RrIncreaseDepth(inst, *data, xi);
 
     if (mask) {
         /* apply transparency from the mask */
@@ -344,7 +339,7 @@ gboolean RrPixmapToRGBA(const RrInstance *inst,
         for (i = 0, y = 0; y < ph; ++y) {
             for (x = 0; x < pw; ++x, ++i) {
                 if (!((((unsigned)xm->data[di + x / 8]) >> (x % 8)) & 0x1))
-                    (*data)[i] &= ~(0xff << default_alpha_offset);
+                    (*data)[i] &= ~(0xff << RrDefaultAlphaOffset);
             }
             di += xm->bytes_per_line;
         }
This page took 0.025864 seconds and 4 git commands to generate.