solids should now work with offsets
authorDerek Foreman <manmower@gmail.com>
Mon, 17 Mar 2003 05:21:58 +0000 (05:21 +0000)
committerDerek Foreman <manmower@gmail.com>
Mon, 17 Mar 2003 05:21:58 +0000 (05:21 +0000)
render/gradient.c
render/gradient.h
render/render.c

index 4302cfa..97dbc70 100644 (file)
@@ -230,23 +230,23 @@ void highlight(pixel32 *x, pixel32 *y, gboolean raised)
         + (b << default_blue_shift);
 }
 
-void gradient_solid(Appearance *l, int w, int h) 
+void gradient_solid(Appearance *l, int x, int y, int w, int h) 
 {
   int i;
   PlanarSurface *sp = &l->surface.data.planar;
-  int left = 0, top = 0, right = w - 1, bottom = h - 1;
+  int left = x, top = y, right = w - 1, bottom = h - 1;
 
   if (sp->primary->gc == None)
     color_allocate_gc(sp->primary);
   XFillRectangle(ob_display, l->pixmap, sp->primary->gc
-                 , 0, 0, w, h);
+                 , x, y, w, h);
 
   if (l->surface.data.planar.interlaced) {
     if (sp->secondary->gc == None)
       color_allocate_gc(sp->secondary);
-    for (i = 0; i < h; i += 2)
+    for (i = y; i < h; i += 2)
       XDrawLine(ob_display, l->pixmap, sp->secondary->gc,
-                0, i, w, i);
+                x, i, w, i);
   }
 /*
   switch (texture.relief()) {
index 626278f..8c4e90f 100644 (file)
@@ -8,7 +8,7 @@ void gradient_vertical(Surface *sf, int w, int h);
 void gradient_horizontal(Surface *sf, int w, int h);
 void gradient_diagonal(Surface *sf, int w, int h);
 void gradient_crossdiagonal(Surface *sf, int w, int h);
-void gradient_solid(Appearance *l, int w, int h); /* needs access to pixmap */
+void gradient_solid(Appearance *l, int x, int y, int w, int h);
 void highlight(pixel32 *x, pixel32 *y, gboolean raised);
 
 #endif /* __gradient_h */
index 12b373c..481ef09 100644 (file)
@@ -80,7 +80,7 @@ void x_paint(Window win, Appearance *l, int x, int y, int w, int h)
     l->surface.data.planar.pixel_data = g_new(pixel32, w * h);
 
     if (l->surface.data.planar.grad == Background_Solid)
-        gradient_solid(l, w, h);
+        gradient_solid(l, x, y, w, h);
     else gradient_render(&l->surface, w, h);
 
 /*reduce depth here...