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:[EMAIL PROTECTED]
------------------------------------------------------------------
Unsubscribe: To: [EMAIL PROTECTED]
Body: unsubscribe linux-svgalib