]> Dogcows Code - chaz/openbox/commitdiff
moved paint's arguments into the appearance struct
authorDerek Foreman <manmower@gmail.com>
Fri, 28 Mar 2003 03:25:51 +0000 (03:25 +0000)
committerDerek Foreman <manmower@gmail.com>
Fri, 28 Mar 2003 03:25:51 +0000 (03:25 +0000)
render/render.c
render/render.h
render/test.c

index f446a75d0e18b0efb7ee3fc7f2ba75d6b1c1ab17..9d4a2c67eabe0c151070ccf6c0e2f023417bd80e 100644 (file)
@@ -87,10 +87,15 @@ void truecolor_startup(void)
   XFree(timage);
 }
 
-void x_paint(Window win, Appearance *l, int x, int y, int w, int h)
+void x_paint(Window win, Appearance *l)
 {
-    int i, transferred = 0;
+    int i, transferred = 0, sw, sh;
+    pixel32 *source;
     Pixmap oldp;
+    int x = l->area.x;
+    int y = l->area.y;
+    int w = l->area.width;
+    int h = l->area.height;
 
     if (w <= 0 || h <= 0 || x+w <= 0 || y+h <= 0) return;
 
@@ -111,7 +116,9 @@ void x_paint(Window win, Appearance *l, int x, int y, int w, int h)
 
 
     if (l->surface.data.planar.grad == Background_ParentRelative) {
-        memset(l->surface.data.planar.pixel_data, 0, w*h*4);
+        sw = l->surface.data.planar.parent->area.width;
+        source = l->surface.data.planar.pixel_data;
+/*        for (i = */
     }
     else if (l->surface.data.planar.grad == Background_Solid)
         gradient_solid(l, x, y, w, h);
index d3752e65ec284f6175d02d1779ab57c5d43db4c4..d5f5f8bc37a7f38c4f323484df1b47e5854372b7 100644 (file)
@@ -131,6 +131,7 @@ typedef struct Texture {
 
 typedef struct Appearance {
     Surface surface;
+    Rect area;
     int textures;
     Texture *texture;
     Pixmap pixmap;
@@ -141,11 +142,11 @@ extern Visual *render_visual;
 extern int render_depth;
 extern Colormap render_colormap;
 
-void (*paint)(Window win, Appearance *l, int x, int y, int w, int h);
+void (*paint)(Window win, Appearance *l);
 
 void render_startup(void);
 void init_appearance(Appearance *l);
-void x_paint(Window win, Appearance *l, int x, int y, int w, int h);
+void x_paint(Window win, Appearance *l);
 void render_shutdown(void);
 Appearance *appearance_new(SurfaceType type, int numtex);
 Appearance *appearance_copy(Appearance *a);
index f1992de9343ee7319aa79357ffdf24c3140064fa..4bcedb2c90e2133967f6b3c03b413588bf5514f3 100644 (file)
@@ -56,21 +56,25 @@ int main()
        look->surface.data.planar.secondary = color_new(0xFF, 0xFF, 0xFF);
        look->surface.data.planar.primary = color_parse("Red");
         look->surface.data.planar.interlaced = FALSE;
+        look->area.x = 0;
+        look->area.x = 0;
+        look->area.width = 500;
+        look->area.height = 500;
        if (ob_display == NULL) {
                fprintf(stderr, "couldn't connect to X server :0\n");
                return 0;
        }
 
-       paint(win, look, 0, 0, 500, 500);
+       paint(win, look);
        while (1) {
                XNextEvent(ob_display, &report);
                switch (report.type) {
                case Expose:
                break;
                case ConfigureNotify:
-                       w = report.xconfigure.width;
-                       h = report.xconfigure.height;
-                       paint(win, look, 0, 0, w, h);
+                       look->area.width = report.xconfigure.width;
+                       look->area.height = report.xconfigure.height;
+                       paint(win, look);
                        printf("confignotify %i:%i\n", w, h);
                break;
                }
This page took 0.026557 seconds and 4 git commands to generate.