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 }