summaryrefslogtreecommitdiff
path: root/render/gradient.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-01 03:10:47 +0000
committerDana Jansens <danakj@orodu.net>2003-09-01 03:10:47 +0000
commite91814e99f8e71fdf2d930acf43988110969547d (patch)
treebc280f5ae1973f3ed64ddbc877033d57bd825497 /render/gradient.c
parent93547b57949f3fbb125d1bf9520c006930932b3b (diff)
add interlaceColor, and support interlaced gradients
Diffstat (limited to 'render/gradient.c')
-rw-r--r--render/gradient.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/render/gradient.c b/render/gradient.c
index a08c258b..c2f7fac7 100644
--- a/render/gradient.c
+++ b/render/gradient.c
@@ -82,6 +82,23 @@ void RrRender(RrAppearance *a, int w, int h)
a->surface.relief==RR_RELIEF_RAISED);
}
}
+
+ if (a->surface.interlaced) {
+ int i;
+ RrPixel32 *p;
+
+ r = a->surface.interlace_color->r;
+ g = a->surface.interlace_color->g;
+ b = a->surface.interlace_color->b;
+ current = (r << RrDefaultRedOffset)
+ + (g << RrDefaultGreenOffset)
+ + (b << RrDefaultBlueOffset);
+ p = data;
+ for (i = 0; i < h; i += 2, p += w)
+ for (x = 0; x < w; ++x, ++p)
+ *p = current;
+ }
+
}
static void highlight(RrPixel32 *x, RrPixel32 *y, gboolean raised)
@@ -166,7 +183,8 @@ static void gradient_solid(RrAppearance *l, int w, int h)
if (sp->interlaced) {
for (i = 0; i < h; i += 2)
- XDrawLine(RrDisplay(l->inst), l->pixmap, RrColorGC(sp->secondary),
+ XDrawLine(RrDisplay(l->inst), l->pixmap,
+ RrColorGC(sp->interlace_color),
0, i, w, i);
}