home *** CD-ROM | disk | FTP | other *** search
- /* Framebuffer Graphics Libary for Linux, Copyright 1993 Harm Hanemaayer */
- /* palette.c Palette functions (wrapper over vgalib) */
-
-
- #include <stdlib.h>
- #include <vga.h>
-
- #include "vgagl.h"
- #include "def.h"
-
-
- /* 256-color palette functions */
-
- /* There was a horrible bug here in 0.8x -- green and blue were swapped... */
- void gl_getpalettecolor( int c, int *r, int *g, int *b ) {
- vga_getpalette(c, r, g, b);
- }
-
- void gl_setpalettecolor( int c, int r, int g, int b ) {
- vga_setpalette(c, r, g, b);
- }
-
- void gl_setpalettecolors( int s, int n, void *_dp ) {
- uchar *dp = _dp;
- int i;
- for (i = s; i < s + n; i++) {
- unsigned char r, g, b;
- r = *(dp++);
- g = *(dp++);
- b = *(dp++);
- vga_setpalette(i, r, g, b);
- }
- }
-
- void gl_getpalettecolors( int s, int n, void *_dp ) {
- uchar *dp = _dp;
- int i;
- for (i = s; i < s + n; i++) {
- int r, g, b;
- vga_getpalette(i, &r, &g, &b);
- *(dp++) = (unsigned char)r;
- *(dp++) = (unsigned char)g;
- *(dp++) = (unsigned char)b;
- }
- }
-
- void gl_getpalette( void *p ) {
- gl_getpalettecolors(0, 256, p);
- }
-
- void gl_setpalette( void *p ) {
- gl_setpalettecolors(0, 256, p);
- }
-
- void gl_setrgbpalette() {
- int i;
- Palette pal;
- for (i = 0; i < 256; i++) {
- pal.color[i].blue = (i & 7) * (64 / 8); /* 3 bits */
- pal.color[i].green = ((i & 56) >> 3) * (64 / 8); /* 3 bits */
- pal.color[i].red = ((i & 192) >> 6) * (64 / 4); /* 2 bits */
- }
- gl_setpalette(&pal);
- }
-