]> Dogcows Code - chaz/openbox/blobdiff - render/render.c
add RrColorGC
[chaz/openbox] / render / render.c
index 4735ec51a948a385a1d6116ecfcc474b9dddc938..1351cb363e887cedf33d836d4c0e8b68db04d1c7 100644 (file)
@@ -97,18 +97,35 @@ void RrPaint(RrAppearance *l, Window win, gint w, gint h)
                                            RrColormap(l->inst));
             }
             RrFontDraw(l->xftdraw, &l->texture[i].data.text, &tarea);
-        break;
+            break;
+        case RR_TEXTURE_LINE_ART:
+            if (!transferred) {
+                transferred = 1;
+                if (l->surface.grad != RR_SURFACE_SOLID)
+                    pixel_data_to_pixmap(l, 0, 0, w, h);
+            }
+            g_message("%d %d -> %d %d",
+                      l->texture[i].data.lineart.x1,
+                      l->texture[i].data.lineart.y1,
+                      l->texture[i].data.lineart.x2,
+                      l->texture[i].data.lineart.y2);
+            XDrawLine(RrDisplay(l->inst), l->pixmap,
+                      RrColorGC(l->texture[i].data.lineart.color),
+                      l->texture[i].data.lineart.x1,
+                      l->texture[i].data.lineart.y1,
+                      l->texture[i].data.lineart.x2,
+                      l->texture[i].data.lineart.y2);
+            break;
         case RR_TEXTURE_MASK:
             if (!transferred) {
                 transferred = 1;
                 if (l->surface.grad != RR_SURFACE_SOLID)
                     pixel_data_to_pixmap(l, 0, 0, w, h);
             }
-            if (l->texture[i].data.mask.color->gc == None)
-                RrColorAllocateGC(l->texture[i].data.mask.color);
             RrPixmapMaskDraw(l->pixmap, &l->texture[i].data.mask, &tarea);
-        break;
+            break;
         case RR_TEXTURE_RGBA:
+            g_assert(!transferred);
             RrImageDraw(l->surface.pixel_data,
                         &l->texture[i].data.rgba, &tarea);
         break;
@@ -121,7 +138,6 @@ void RrPaint(RrAppearance *l, Window win, gint w, gint h)
             pixel_data_to_pixmap(l, 0, 0, w, h);
     }
 
-
     XSetWindowBackgroundPixmap(RrDisplay(l->inst), win, l->pixmap);
     XClearWindow(RrDisplay(l->inst), win);
     if (oldp) XFreePixmap(RrDisplay(l->inst), oldp);
@@ -288,6 +304,12 @@ void RrMinsize(RrAppearance *l, gint *w, gint *h)
             *w += MAX(*w, l->texture[i].data.rgba.width);
             *h += MAX(*h, l->texture[i].data.rgba.height);
             break;
+        case RR_TEXTURE_LINE_ART:
+            *w += MAX(*w, MAX(l->texture[i].data.lineart.x1,
+                              l->texture[i].data.lineart.x2));
+            *h += MAX(*h, MAX(l->texture[i].data.lineart.y1,
+                              l->texture[i].data.lineart.y2));
+            break;
         }
     }
 
This page took 0.021162 seconds and 4 git commands to generate.