fbee
annotate test.c @ 1:2471e9b63432
foo
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 07 Feb 2013 16:03:32 +0200 |
parents | |
children |
rev | line source |
---|---|
nuclear@0 | 1 #include <stdio.h> |
nuclear@0 | 2 #include <stdlib.h> |
nuclear@0 | 3 #include <string.h> |
nuclear@0 | 4 #include "fbee.h" |
nuclear@0 | 5 |
nuclear@0 | 6 void draw(void *cls); |
nuclear@0 | 7 void keyb(int key, int state, void *cls); |
nuclear@0 | 8 void mouse_button(int bn, int state, void *cls); |
nuclear@0 | 9 void mouse_motion(int x, int y, void *cls); |
nuclear@0 | 10 |
nuclear@0 | 11 int width = 640, height = 480, bpp = 32; |
nuclear@0 | 12 int mouse_x, mouse_y; |
nuclear@0 | 13 int bnstate[8]; |
nuclear@0 | 14 |
nuclear@0 | 15 int main(void) |
nuclear@0 | 16 { |
nuclear@0 | 17 if(fbee_init() == -1) { |
nuclear@0 | 18 return 1; |
nuclear@0 | 19 } |
nuclear@0 | 20 |
nuclear@0 | 21 fbee_set_video_mode(width, height, bpp, 0); |
nuclear@0 | 22 fbee_get_video_mode(&width, &height, &bpp); |
nuclear@0 | 23 |
nuclear@0 | 24 printf("got video mode: %dx%d-%dbpp\n", width, height, bpp); |
nuclear@0 | 25 |
nuclear@0 | 26 fbee_event_func(FBEE_EV_DRAW, draw, 0); |
nuclear@0 | 27 fbee_event_func(FBEE_EV_KEY, keyb, 0); |
nuclear@0 | 28 fbee_event_func(FBEE_EV_BUTTON, mouse_button, 0); |
nuclear@0 | 29 fbee_event_func(FBEE_EV_MOTION, mouse_motion, 0); |
nuclear@0 | 30 |
nuclear@0 | 31 { |
nuclear@0 | 32 unsigned char *fb = fbee_framebuffer(); |
nuclear@0 | 33 memset(fb, 0x80, width * height * bpp / 8); |
nuclear@0 | 34 } |
nuclear@0 | 35 |
nuclear@0 | 36 fbee_evloop(); |
nuclear@0 | 37 return 0; |
nuclear@0 | 38 } |
nuclear@0 | 39 |
nuclear@0 | 40 void draw(void *cls) |
nuclear@0 | 41 { |
nuclear@0 | 42 unsigned char *fb = fbee_framebuffer(); |
nuclear@0 | 43 if(bnstate[0]) { |
nuclear@0 | 44 fb[(mouse_y * width + mouse_x) * 4 + 1] = 255; |
nuclear@0 | 45 } |
nuclear@0 | 46 |
nuclear@0 | 47 fbee_update(0); |
nuclear@0 | 48 } |
nuclear@0 | 49 |
nuclear@0 | 50 void keyb(int key, int state, void *cls) |
nuclear@0 | 51 { |
nuclear@0 | 52 if(key == 27) { |
nuclear@0 | 53 exit(0); |
nuclear@0 | 54 } |
nuclear@0 | 55 } |
nuclear@0 | 56 |
nuclear@0 | 57 void mouse_button(int bn, int state, void *cls) |
nuclear@0 | 58 { |
nuclear@0 | 59 bnstate[bn] = state; |
nuclear@0 | 60 fbee_redisplay(); |
nuclear@0 | 61 } |
nuclear@0 | 62 |
nuclear@0 | 63 void mouse_motion(int x, int y, void *cls) |
nuclear@0 | 64 { |
nuclear@0 | 65 mouse_x = x; |
nuclear@0 | 66 mouse_y = y; |
nuclear@0 | 67 fbee_redisplay(); |
nuclear@0 | 68 } |