gradient.c for the Openbox window manager
Copyright (c) 2006 Mikael Magnusson
- Copyright (c) 2003 Ben Jansens
+ Copyright (c) 2003-2007 Dana Jansens
Copyright (c) 2003 Derek Foreman
This program is free software; you can redistribute it and/or modify
RrPixel32 current;
RrColor *primary_light, *secondary_light;
+ VARS(y1);
+ VARS(y3);
+
r = sf->primary->r;
r += r >> 2;
g = sf->primary->g;
if (b > 0xFF) b = 0xFF;
secondary_light = RrColorNew(a->inst, r, g, b);
- VARS(y1);
SETUP(y1, primary_light, sf->primary, (h / 2) -1);
-
- VARS(y3);
SETUP(y3, sf->secondary, secondary_light, (h / 2) -1);
for (y1 = h - 1; y1 > (h / 2) -1; --y1) { /* 0 -> h-1 */
VARS(x);
SETUP(x, sf->primary, sf->secondary, w/2);
- for (x = w - 1; x > w/2-1; --x) { /* 0 -> w-1 */
- current = COLOR(x);
- datav = data;
- for (y = h - 1; y >= 0; --y) { /* 0 -> h */
- *datav = current;
- datav += w;
- }
- ++data;
+ if (w > 1) {
+ for (x = w - 1; x > w/2-1; --x) { /* 0 -> w-1 */
+ current = COLOR(x);
+ datav = data;
+ for (y = h - 1; y >= 0; --y) { /* 0 -> h */
+ *datav = current;
+ datav += w;
+ }
+ ++data;
- NEXT(x);
- }
- SETUP(x, sf->secondary, sf->primary, w/2);
- for (x = w/2 - 1; x > 0; --x) { /* 0 -> w-1 */
- current = COLOR(x);
- datav = data;
- for (y = h - 1; y >= 0; --y) { /* 0 -> h */
- *datav = current;
- datav += w;
+ NEXT(x);
}
- ++data;
+ SETUP(x, sf->secondary, sf->primary, w/2);
+ for (x = w/2 - 1; x > 0; --x) { /* 0 -> w-1 */
+ current = COLOR(x);
+ datav = data;
+ for (y = h - 1; y >= 0; --y) { /* 0 -> h */
+ *datav = current;
+ datav += w;
+ }
+ ++data;
- NEXT(x);
+ NEXT(x);
+ }
}
current = COLOR(x);
for (y = h - 1; y >= 0; --y) /* 0 -> h */