Change to the linux kernel coding style
[wmaker-crm.git] / wrlib / tests / testgrad.c
dissimilarity index 92%
index 42c2193..1f43f2c 100644 (file)
-
-
-#include <X11/Xlib.h>
-#include "wraster.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef BENCH
-#include <sys/time.h>
-#include <time.h>
-#endif
-
-
-Display *dpy;
-Window win;
-RContext *ctx;
-RImage *imgh, *imgv, *imgd;
-Pixmap pix;
-char *ProgName;
-
-
-void
-print_help()
-{
-    printf("usage: %s [-options] color1 [color2 ...]\n", ProgName);
-    puts("options:");
-    puts(" -m          match  colors");
-    puts(" -d          dither colors (default)");
-    puts(" -c <cpc>    colors per channel to use");
-    puts(" -v <vis-id> visual id to use");
-}
-
-#ifdef BENCH
-#include "bench.h"
-#endif
-int main(int argc, char **argv)
-{
-    RContextAttributes attr;
-    RColor **colors = NULL;
-    int i, rmode = RDitheredRendering, ncolors = 0, cpc = 4;
-    char **color_name;
-    XColor color;
-    XSetWindowAttributes val;
-    int visualID = -1;
-#ifdef BENCH
-    double t1, t2, total, t, rt;
-    struct timeval timev;
-#endif
-
-    ProgName = strrchr(argv[0],'/');
-    if (!ProgName)
-        ProgName = argv[0];
-    else
-        ProgName++;
-
-    color_name = (char **) malloc(sizeof(char*) * argc);
-    if(color_name == NULL) {
-        fprintf(stderr, "Cannot allocate memory!\n");
-        exit(1);
-    }
-
-    if (argc>1) {
-        for (i=1; i<argc; i++) {
-            if (strcmp(argv[i], "-m")==0) {
-                rmode = RBestMatchRendering;
-            } else if (strcmp(argv[i], "-d")==0) {
-                rmode = RDitheredRendering;
-            } else if (strcmp(argv[i], "-c")==0) {
-                i++;
-                if (i>=argc) {
-                    fprintf(stderr, "too few arguments for %s\n", argv[i-1]);
-                    exit(0);
-                }
-                if (sscanf(argv[i], "%i", &cpc)!=1) {
-                    fprintf(stderr, "bad value for colors per channel: \"%s\"\n", argv[i]);
-                    exit(0);
-                }
-            } else if (strcmp(argv[i], "-v")==0) {
-                i++;
-                if (i>=argc) {
-                    fprintf(stderr, "too few arguments for %s\n", argv[i-1]);
-                    exit(0);
-                }
-                if (sscanf(argv[i], "%i", &visualID)!=1) {
-                    fprintf(stderr, "bad value for visual ID: \"%s\"\n", argv[i]);
-                    exit(0);
-                }
-            } else if (argv[i][0] != '-') {
-                color_name[ncolors++] = argv[i];
-            } else {
-                print_help();
-                exit(1);
-            }
-        }
-    }
-
-    if (ncolors == 0) {
-        print_help();
-        exit(1);
-    }
-
-    dpy = XOpenDisplay("");
-    if (!dpy) {
-        puts("cant open display");
-        exit(1);
-    }
-    attr.flags = RC_RenderMode | RC_ColorsPerChannel;
-
-    attr.render_mode = rmode;
-    attr.colors_per_channel = cpc;
-
-    if (visualID >= 0) {
-        attr.flags |= RC_VisualID;
-        attr.visualid = visualID;
-    }
-
-    ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr);
-
-    if (!ctx) {
-        printf("could not initialize graphics library context: %s\n",
-               RMessageForError(RErrorCode));
-        exit(1);
-    }
-
-    colors = malloc(sizeof(RColor*)*(ncolors+1));
-    for (i=0; i<ncolors; i++) {
-        if (!XParseColor(dpy, ctx->cmap, color_name[i], &color)) {
-            printf("could not parse color \"%s\"\n", color_name[i]);
-            exit(1);
-        }
-        else {
-            colors[i] = malloc(sizeof(RColor));
-            colors[i]->red = color.red >> 8;
-            colors[i]->green = color.green >> 8;
-            colors[i]->blue = color.blue >> 8;
-            printf("0x%02x%02x%02x\n", colors[i]->red, colors[i]->green,
-                   colors[i]->blue);
-        }
-    }
-    colors[i] = NULL;
-
-    val.background_pixel = ctx->black;
-    val.colormap = ctx->cmap;
-    val.backing_store = Always;
-#ifdef BENCH
-    win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 250, 250,
-                        0, ctx->depth, InputOutput, ctx->visual,
-                        CWColormap|CWBackPixel|CWBackingStore, &val);
-#else
-    win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 750, 250,
-                        0, ctx->depth, InputOutput, ctx->visual,
-                        CWColormap|CWBackPixel|CWBackingStore, &val);
-#endif
-    XMapRaised(dpy, win);
-    XFlush(dpy);
-
-#ifdef BENCH
-    rt = 0;
-    gettimeofday(&timev, NULL);
-    t = (double)timev.tv_sec + (((double)timev.tv_usec)/1000000);
-    for (i=0; i<9; i++) {
-        if (i>0)
-            printf("\nrepeating...\n\n");
-        gettimeofday(&timev, NULL);
-        t1 = (double)timev.tv_sec + (((double)timev.tv_usec)/1000000);
-        if (i%3==0)
-            imgh = RRenderMultiGradient(550, 550, colors, RGRD_HORIZONTAL);
-        else if (i%3==1)
-            imgh = RRenderMultiGradient(550, 550, colors, RGRD_VERTICAL);
-        else
-            imgh = RRenderMultiGradient(550, 550, colors, RGRD_DIAGONAL);
-
-        gettimeofday(&timev, NULL);
-        t2 = (double)timev.tv_sec + (((double)timev.tv_usec)/1000000);
-        total = t2 - t1;
-        printf("gradient rendered in %f sec\n", total);
-
-        RConvertImage(ctx, imgh, &pix);
-        gettimeofday(&timev, NULL);
-        t1 = (double)timev.tv_sec + (((double)timev.tv_usec)/1000000);
-        total = t1 - t2;
-        rt += total;
-        printf("image converted in %f sec\n", total);
-
-        XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 0, 0);
-
-        XFlush(dpy);
-    }
-    t1 = (double)timev.tv_sec + (((double)timev.tv_usec)/1000000);
-    printf("------------------------------------------\n");
-    printf("%i images processed in %f sec\n", i, t1-t);
-    printf("average time per convertion %f sec\n", rt/i);
-    printf("------------------------------------------\n");
-#else
-    imgh = RRenderMultiGradient(250, 250, colors, RGRD_HORIZONTAL);
-    imgv = RRenderMultiGradient(250, 250, colors, RGRD_VERTICAL);
-    imgd = RRenderMultiGradient(250, 250, colors, RGRD_DIAGONAL);
-    RConvertImage(ctx, imgh, &pix);
-    XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 0, 0);
-
-    RConvertImage(ctx, imgv, &pix);
-    XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 250, 0);
-
-    RConvertImage(ctx, imgd, &pix);
-    XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 500, 0);
-
-    XFlush(dpy);
-#endif
-
-    getchar();
-    return 0;
-}
-
+
+#include <X11/Xlib.h>
+#include "wraster.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef BENCH
+#include <sys/time.h>
+#include <time.h>
+#endif
+
+Display *dpy;
+Window win;
+RContext *ctx;
+RImage *imgh, *imgv, *imgd;
+Pixmap pix;
+char *ProgName;
+
+void print_help()
+{
+       printf("usage: %s [-options] color1 [color2 ...]\n", ProgName);
+       puts("options:");
+       puts(" -m               match  colors");
+       puts(" -d               dither colors (default)");
+       puts(" -c <cpc> colors per channel to use");
+       puts(" -v <vis-id>      visual id to use");
+}
+
+#ifdef BENCH
+#include "bench.h"
+#endif
+int main(int argc, char **argv)
+{
+       RContextAttributes attr;
+       RColor **colors = NULL;
+       int i, rmode = RDitheredRendering, ncolors = 0, cpc = 4;
+       char **color_name;
+       XColor color;
+       XSetWindowAttributes val;
+       int visualID = -1;
+#ifdef BENCH
+       double t1, t2, total, t, rt;
+       struct timeval timev;
+#endif
+
+       ProgName = strrchr(argv[0], '/');
+       if (!ProgName)
+               ProgName = argv[0];
+       else
+               ProgName++;
+
+       color_name = (char **)malloc(sizeof(char *) * argc);
+       if (color_name == NULL) {
+               fprintf(stderr, "Cannot allocate memory!\n");
+               exit(1);
+       }
+
+       if (argc > 1) {
+               for (i = 1; i < argc; i++) {
+                       if (strcmp(argv[i], "-m") == 0) {
+                               rmode = RBestMatchRendering;
+                       } else if (strcmp(argv[i], "-d") == 0) {
+                               rmode = RDitheredRendering;
+                       } else if (strcmp(argv[i], "-c") == 0) {
+                               i++;
+                               if (i >= argc) {
+                                       fprintf(stderr, "too few arguments for %s\n", argv[i - 1]);
+                                       exit(0);
+                               }
+                               if (sscanf(argv[i], "%i", &cpc) != 1) {
+                                       fprintf(stderr, "bad value for colors per channel: \"%s\"\n", argv[i]);
+                                       exit(0);
+                               }
+                       } else if (strcmp(argv[i], "-v") == 0) {
+                               i++;
+                               if (i >= argc) {
+                                       fprintf(stderr, "too few arguments for %s\n", argv[i - 1]);
+                                       exit(0);
+                               }
+                               if (sscanf(argv[i], "%i", &visualID) != 1) {
+                                       fprintf(stderr, "bad value for visual ID: \"%s\"\n", argv[i]);
+                                       exit(0);
+                               }
+                       } else if (argv[i][0] != '-') {
+                               color_name[ncolors++] = argv[i];
+                       } else {
+                               print_help();
+                               exit(1);
+                       }
+               }
+       }
+
+       if (ncolors == 0) {
+               print_help();
+               exit(1);
+       }
+
+       dpy = XOpenDisplay("");
+       if (!dpy) {
+               puts("cant open display");
+               exit(1);
+       }
+       attr.flags = RC_RenderMode | RC_ColorsPerChannel;
+
+       attr.render_mode = rmode;
+       attr.colors_per_channel = cpc;
+
+       if (visualID >= 0) {
+               attr.flags |= RC_VisualID;
+               attr.visualid = visualID;
+       }
+
+       ctx = RCreateContext(dpy, DefaultScreen(dpy), &attr);
+
+       if (!ctx) {
+               printf("could not initialize graphics library context: %s\n", RMessageForError(RErrorCode));
+               exit(1);
+       }
+
+       colors = malloc(sizeof(RColor *) * (ncolors + 1));
+       for (i = 0; i < ncolors; i++) {
+               if (!XParseColor(dpy, ctx->cmap, color_name[i], &color)) {
+                       printf("could not parse color \"%s\"\n", color_name[i]);
+                       exit(1);
+               } else {
+                       colors[i] = malloc(sizeof(RColor));
+                       colors[i]->red = color.red >> 8;
+                       colors[i]->green = color.green >> 8;
+                       colors[i]->blue = color.blue >> 8;
+                       printf("0x%02x%02x%02x\n", colors[i]->red, colors[i]->green, colors[i]->blue);
+               }
+       }
+       colors[i] = NULL;
+
+       val.background_pixel = ctx->black;
+       val.colormap = ctx->cmap;
+       val.backing_store = Always;
+#ifdef BENCH
+       win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 250, 250,
+                           0, ctx->depth, InputOutput, ctx->visual,
+                           CWColormap | CWBackPixel | CWBackingStore, &val);
+#else
+       win = XCreateWindow(dpy, DefaultRootWindow(dpy), 10, 10, 750, 250,
+                           0, ctx->depth, InputOutput, ctx->visual,
+                           CWColormap | CWBackPixel | CWBackingStore, &val);
+#endif
+       XMapRaised(dpy, win);
+       XFlush(dpy);
+
+#ifdef BENCH
+       rt = 0;
+       gettimeofday(&timev, NULL);
+       t = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
+       for (i = 0; i < 9; i++) {
+               if (i > 0)
+                       printf("\nrepeating...\n\n");
+               gettimeofday(&timev, NULL);
+               t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
+               if (i % 3 == 0)
+                       imgh = RRenderMultiGradient(550, 550, colors, RGRD_HORIZONTAL);
+               else if (i % 3 == 1)
+                       imgh = RRenderMultiGradient(550, 550, colors, RGRD_VERTICAL);
+               else
+                       imgh = RRenderMultiGradient(550, 550, colors, RGRD_DIAGONAL);
+
+               gettimeofday(&timev, NULL);
+               t2 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
+               total = t2 - t1;
+               printf("gradient rendered in %f sec\n", total);
+
+               RConvertImage(ctx, imgh, &pix);
+               gettimeofday(&timev, NULL);
+               t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
+               total = t1 - t2;
+               rt += total;
+               printf("image converted in %f sec\n", total);
+
+               XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 0, 0);
+
+               XFlush(dpy);
+       }
+       t1 = (double)timev.tv_sec + (((double)timev.tv_usec) / 1000000);
+       printf("------------------------------------------\n");
+       printf("%i images processed in %f sec\n", i, t1 - t);
+       printf("average time per convertion %f sec\n", rt / i);
+       printf("------------------------------------------\n");
+#else
+       imgh = RRenderMultiGradient(250, 250, colors, RGRD_HORIZONTAL);
+       imgv = RRenderMultiGradient(250, 250, colors, RGRD_VERTICAL);
+       imgd = RRenderMultiGradient(250, 250, colors, RGRD_DIAGONAL);
+       RConvertImage(ctx, imgh, &pix);
+       XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 0, 0);
+
+       RConvertImage(ctx, imgv, &pix);
+       XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 250, 0);
+
+       RConvertImage(ctx, imgd, &pix);
+       XCopyArea(dpy, pix, win, ctx->copy_gc, 0, 0, 250, 250, 500, 0);
+
+       XFlush(dpy);
+#endif
+
+       getchar();
+       return 0;
+}