]> Dogcows Code - chaz/openbox/commitdiff
made all the gradients work with integer math. removed the pipecross and rectangle...
authorDana Jansens <danakj@orodu.net>
Tue, 24 Jun 2003 18:54:18 +0000 (18:54 +0000)
committerDana Jansens <danakj@orodu.net>
Tue, 24 Jun 2003 18:54:18 +0000 (18:54 +0000)
render/gradient.c
render/render.h
render/test.c
render/theme.c

index b05da48a54ff0c7178bdd2bb7ffa88124f19c7dc..6f976e0b0e6843fc3b7c9b3034e377d32ee620b5 100644 (file)
@@ -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;
-    }
-}
index ede14d72d21b04e44c3a47e18b6bf2436c80d315..8469c69ee04c71a559b5d24e4a9a2dc35b86a07d 100644 (file)
@@ -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;
 
index 12974a913ddf402b1880713a3190772cfad111a5..38cd7a99a2aad9155d897e474d09a7d5da82509e 100644 (file)
@@ -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;
index 7e45b86fe4aed1198a93a7ef46c17d018140167c..4f86c8d062ea02a344b9403c371e0d9a137cd0cf 100644 (file)
@@ -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)
This page took 0.028662 seconds and 4 git commands to generate.