8 struct vid_modeinfo *vm;
11 int main(int argc, char **argv)
18 if(vid_init() == -1) {
19 fprintf(stderr, "failed to initialize video\n");
22 printf("press any key...\n");
25 if((mode = vid_findmode(xres, yres, bpp)) == -1) {
26 fprintf(stderr, "failed to find video mode: %dx%d %dbpp\n", xres, yres, bpp);
29 if(!(vmem = vid_setmode(mode))) {
30 fprintf(stderr, "failed to set video mode %04x\n", mode);
33 vm = vid_modeinfo(mode);
58 static float fmin(float a, float b)
64 #define TWO_PI (PI * 2.0f)
69 unsigned char *fb = vmem;
70 struct vid_color cmap[256];
72 for(i=0; i<256; i++) {
73 float x = (float)i / (256.0f / TWO_PI);
74 cmap[i].r = (int)fmin(0.0f, sin(x) * 255.0f);
75 cmap[i].g = (int)fmin(0.0f, sin(x - PI) * 255.0f);
76 cmap[i].b = (int)fmin(0.0f, cos(x - TWO_PI) * 255.0f);
78 vid_setpal(0, 256, cmap);
82 for(i=0; i<vm->height; i++) {
83 for(j=0; j<vm->width; j++) {