11 static void draw(void);
13 static struct video_mode *vmode;
16 int main(int argc, char **argv)
19 struct video_mode *vmodes;
20 int vmidx, status = 0;
22 init_logger("game.log");
27 if(init_video() == -1) {
30 vmodes = video_modes();
32 if((vmidx = match_video_mode(640, 480, 16)) == -1) {
35 if(!(vmem = set_video_mode(vmidx, 1))) {
38 vmode = vmodes + vmidx;
40 fb_width = vmode->xsz;
41 fb_height = vmode->ysz;
42 fb_size = vmode->pitch * vmode->ysz;
44 if(!(fb_buf = malloc(fb_size + vmode->pitch * 2))) {
45 fprintf(stderr, "failed to allocate framebuffer\n");
49 fb_pixels = (char*)fb_buf + vmode->pitch;
55 while((key = kb_getkey()) != -1) {
56 if(key == 27) goto break_evloop;
59 time_msec = get_msec();
71 static void draw(void)
74 uint16_t *pptr = fb_pixels;
76 for(i=0; i<fb_height; i++) {
77 for(j=0; j<fb_width; j++) {
78 int chess = ((i >> 4) & 1) == ((j >> 4) & 1);
79 *pptr++ = chess ? 0xff00 : 0x00ff;
83 blit_frame(fb_pixels, 1);