summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--render/gradient.c122
-rw-r--r--render/render.h2
-rw-r--r--render/test.c2
-rw-r--r--render/theme.c6
4 files changed, 1 insertions, 131 deletions
diff --git a/render/gradient.c b/render/gradient.c
index b05da48a..6f976e0b 100644
--- a/render/gradient.c
+++ b/render/gradient.c
@@ -10,8 +10,6 @@ static void gradient_horizontal(RrSurface *sf, int w, int h);
static void gradient_diagonal(RrSurface *sf, int w, int h);
static void gradient_crossdiagonal(RrSurface *sf, int w, int h);
static void gradient_pyramid(RrSurface *sf, int inw, int inh);
-static void gradient_rectangle(RrSurface *sf, int inw, int inh);
-static void gradient_pipecross(RrSurface *sf, int inw, int inh);
void RrRender(RrAppearance *a, int w, int h)
{
@@ -39,12 +37,6 @@ void RrRender(RrAppearance *a, int w, int h)
case RR_SURFACE_PYRAMID:
gradient_pyramid(&a->surface, w, h);
break;
- case RR_SURFACE_PIPECROSS:
- gradient_pipecross(&a->surface, w, h);
- break;
- case RR_SURFACE_RECTANGLE:
- gradient_rectangle(&a->surface, w, h);
- break;
default:
g_message("unhandled gradient");
return;
@@ -544,117 +536,3 @@ static void gradient_pyramid(RrSurface *sf, int inw, int inh)
*(end-(inw-x)) = current;
}
-static void gradient_rectangle(RrSurface *sf, int inw, int inh)
-{
- int x, y, w = (inw >> 1) + 1, h = (inh >> 1) + 1;
- RrPixel32 *data = sf->RrPixel_data;
- RrPixel32 *end = data + inw*inh - 1;
- RrPixel32 current;
- RrColor left, right;
- RrColor extracorner;
-
- VARS(lefty);
- VARS(righty);
- VARS(x);
-
- extracorner.r = (sf->primary->r + sf->secondary->r) / 2;
- extracorner.g = (sf->primary->g + sf->secondary->g) / 2;
- extracorner.b = (sf->primary->b + sf->secondary->b) / 2;
-
- SETUP(lefty, (&extracorner), sf->secondary, h);
- SETUP(righty, sf->primary, (&extracorner), h);
-
- for (y = h - 1; y > 0; --y) { /* 0 -> h-1 */
- COLOR_RR(lefty, (&left));
- COLOR_RR(righty, (&right));
-
- SETUP(x, (&left), (&right), w);
-
- for (x = w - 1; x > 0; --x) { /* 0 -> w-1 */
- current = COLOR(x);
- *(data+x) = current;
- *(data+inw-x) = current;
- *(end-x) = current;
- *(end-(inw-x)) = current;
-
- NEXT(x);
- }
- current = COLOR(x);
- *(data+x) = current;
- *(data+inw-x) = current;
- *(end-x) = current;
- *(end-(inw-x)) = current;
-
- data+=inw;
- end-=inw;
-
- NEXT(lefty);
- NEXT(righty);
- }
- COLOR_RR(lefty, (&left));
- COLOR_RR(righty, (&right));
-
- SETUP(x, (&left), (&right), w);
-
- for (x = w - 1; x > 0; --x) { /* 0 -> w-1 */
- current = COLOR(x);
- *(data+x) = current;
- *(data+inw-x) = current;
- *(end-x) = current;
- *(end-(inw-x)) = current;
-
- NEXT(x);
- }
- *(data+x) = current;
- *(data+inw-x) = current;
- *(end-x) = current;
- *(end-(inw-x)) = current;
-}
-
-static void gradient_pipecross(RrSurface *sf, int inw, int inh)
-{
- RrPixel32 *data = sf->RrPixel_data;
- RrPixel32 *end = data + inw*inh - 1;
- RrPixel32 current;
- float drx, dgx, dbx, dry, dgy, dby;
- unsigned int r,g,b;
- int x, y, h=(inh/2) + 1, w=(inw/2) + 1;
-
- drx = (float)(sf->secondary->r -
- sf->primary->r);
- dry = drx/(float)h;
- drx/= (float)w;
-
- dgx = (float)(sf->secondary->g -
- sf->primary->g);
- dgy = dgx/(float)h;
- dgx/= (float)w;
-
- dbx = (float)(sf->secondary->b -
- sf->primary->b);
- dby = dbx/(float)h;
- dbx/= (float)w;
-
- for (y = 0; y < h; ++y) {
- for (x = 0; x < w; ++x, data) {
- if ((float)x/(float)w > (float)y/(float)h) {
- r = sf->primary->r + (drx * x);
- g = sf->primary->g + (dgx * x);
- b = sf->primary->b + (dbx * x);
- } else {
- r = sf->primary->r + (dry * x);
- g = sf->primary->g + (dgy * x);
- b = sf->primary->b + (dby * x);
- }
- current = (r << RrDefaultRedOffset)
- + (g << RrDefaultGreenOffset)
- + (b << RrDefaultBlueOffset);
- *(data+x) = current;
- *(data+inw-x) = current;
- *(end-x) = current;
- *(end-(inw-x)) = current;
- }
- data+=inw;
- end-=inw;
- }
-}
diff --git a/render/render.h b/render/render.h
index ede14d72..8469c69e 100644
--- a/render/render.h
+++ b/render/render.h
@@ -40,8 +40,6 @@ typedef enum {
RR_SURFACE_VERTICAL,
RR_SURFACE_DIAGONAL,
RR_SURFACE_CROSS_DIAGONAL,
- RR_SURFACE_PIPECROSS,
- RR_SURFACE_RECTANGLE,
RR_SURFACE_PYRAMID
} RrSurfaceColorType;
diff --git a/render/test.c b/render/test.c
index 12974a91..38cd7a99 100644
--- a/render/test.c
+++ b/render/test.c
@@ -46,7 +46,7 @@ int main()
inst = RrInstanceNew(ob_display, ob_screen);
look = RrAppearanceNew(inst, 0);
- look->surface.grad = RR_SURFACE_RECTANGLE;
+ look->surface.grad = RR_SURFACE_PYRAMID;
look->surface.secondary = RrColorParse(inst, "Yellow");
look->surface.primary = RrColorParse(inst, "Blue");
look->surface.interlaced = FALSE;
diff --git a/render/theme.c b/render/theme.c
index 7e45b86f..4f86c8d0 100644
--- a/render/theme.c
+++ b/render/theme.c
@@ -871,14 +871,8 @@ static void parse_appearance(gchar *tex, RrSurfaceColorType *grad,
if (strstr(tex, "gradient") != NULL) {
if (strstr(tex, "crossdiagonal") != NULL)
*grad = RR_SURFACE_CROSS_DIAGONAL;
- else if (strstr(tex, "rectangle") != NULL)
- *grad = RR_SURFACE_RECTANGLE;
else if (strstr(tex, "pyramid") != NULL)
*grad = RR_SURFACE_PYRAMID;
- else if (strstr(tex, "pipecross") != NULL)
- *grad = RR_SURFACE_PIPECROSS;
- else if (strstr(tex, "elliptic") != NULL)
- *grad = RR_SURFACE_PIPECROSS;
else if (strstr(tex, "horizontal") != NULL)
*grad = RR_SURFACE_HORIZONTAL;
else if (strstr(tex, "vertical") != NULL)