Q: about RGB values of vga_setcolor() colors

Search this archive.

From: gaw zay (gauze@rifug.org)
Date: Thu 29 Nov 2001 - 04:51:04 IST


hi,
I was hacking together something and wanted to do a snapshot of the screen
so I hacked up a function which is kludgy at best, basically I was
wondering if there was a better way to do this (the switch/case part, ugly!)
it looks fairly close to screen output, and luckily I don't use any of the
'in between colors' in this program. (I'm just using the 0-15 color values for
vga_setcolor() if it isn't obvious, the color names (LIGHT_RED, etc) are defined
by an enum earlier)

Are there any functions to get rgb values of these 16 basic colors is my
question, I guess. (or a way to decode gl_getpixelrgb() when using these?)

thanks in advance,
brian

code follows
/* ze function */
void ppmsnapshot(void)
{
    FILE *file;
    int x, y, width = 320, height = 200;
    int color, r=0, g=0, b=0;
    file = fopen("snapshot.ppm", "w");
    fprintf(file, "P3\n%d %d\n255\n", width, height); //ppm header

    for (y = 0; y < height; y++) {
        if (y > 0) fprintf(file,"\n");
        for (x = 0; x < width; x++) {
            color = gl_getpixel(x, y);
            switch (color)
            {
                case BLACK: r = g = b = 0; break;
                case WHITE: r = g = b = 255; break;
                case RED:   r=127; g = b = 0; break;
                case GREEN: g=127; r = b = 0; break;
                case BLUE: b=127; r = g = 0; break;
                case LIGHT_GREEN: g=255; b = r = 0; break;
                case LIGHT_BLUE:  b=255; r = g = 0; break;
                case LIGHT_RED:   r=127; b = g = 0; break;
            }
            fprintf(file, "%d %d %d ", r, g, b);
        }
    }
    fclose(file);
    return;
}


------------Rhode Island Free Unix Group----------
http://www.rifug.org
mailto:gauze@rifug.org


------------------------------------------------------------------
Unsubscribe:  To:   listbot@svgalib.org
              Body: unsubscribe linux-svgalib


This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:24 IST