fbee
diff test.c @ 0:88a2049be27b
fbee initial
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 05 Feb 2013 13:40:36 +0200 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/test.c Tue Feb 05 13:40:36 2013 +0200 1.3 @@ -0,0 +1,68 @@ 1.4 +#include <stdio.h> 1.5 +#include <stdlib.h> 1.6 +#include <string.h> 1.7 +#include "fbee.h" 1.8 + 1.9 +void draw(void *cls); 1.10 +void keyb(int key, int state, void *cls); 1.11 +void mouse_button(int bn, int state, void *cls); 1.12 +void mouse_motion(int x, int y, void *cls); 1.13 + 1.14 +int width = 640, height = 480, bpp = 32; 1.15 +int mouse_x, mouse_y; 1.16 +int bnstate[8]; 1.17 + 1.18 +int main(void) 1.19 +{ 1.20 + if(fbee_init() == -1) { 1.21 + return 1; 1.22 + } 1.23 + 1.24 + fbee_set_video_mode(width, height, bpp, 0); 1.25 + fbee_get_video_mode(&width, &height, &bpp); 1.26 + 1.27 + printf("got video mode: %dx%d-%dbpp\n", width, height, bpp); 1.28 + 1.29 + fbee_event_func(FBEE_EV_DRAW, draw, 0); 1.30 + fbee_event_func(FBEE_EV_KEY, keyb, 0); 1.31 + fbee_event_func(FBEE_EV_BUTTON, mouse_button, 0); 1.32 + fbee_event_func(FBEE_EV_MOTION, mouse_motion, 0); 1.33 + 1.34 + { 1.35 + unsigned char *fb = fbee_framebuffer(); 1.36 + memset(fb, 0x80, width * height * bpp / 8); 1.37 + } 1.38 + 1.39 + fbee_evloop(); 1.40 + return 0; 1.41 +} 1.42 + 1.43 +void draw(void *cls) 1.44 +{ 1.45 + unsigned char *fb = fbee_framebuffer(); 1.46 + if(bnstate[0]) { 1.47 + fb[(mouse_y * width + mouse_x) * 4 + 1] = 255; 1.48 + } 1.49 + 1.50 + fbee_update(0); 1.51 +} 1.52 + 1.53 +void keyb(int key, int state, void *cls) 1.54 +{ 1.55 + if(key == 27) { 1.56 + exit(0); 1.57 + } 1.58 +} 1.59 + 1.60 +void mouse_button(int bn, int state, void *cls) 1.61 +{ 1.62 + bnstate[bn] = state; 1.63 + fbee_redisplay(); 1.64 +} 1.65 + 1.66 +void mouse_motion(int x, int y, void *cls) 1.67 +{ 1.68 + mouse_x = x; 1.69 + mouse_y = y; 1.70 + fbee_redisplay(); 1.71 +}