summaryrefslogtreecommitdiff
path: root/display.c
diff options
context:
space:
mode:
Diffstat (limited to 'display.c')
-rw-r--r--display.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/display.c b/display.c
new file mode 100644
index 0000000..a4ac62b
--- /dev/null
+++ b/display.c
@@ -0,0 +1,63 @@
1#include <SDL/SDL.h>
2#include <SDL/SDL_gfxPrimitives.h>
3
4#include "display.h"
5
6static SDL_Surface *screen;
7static int g_width, g_height;
8
9void display_init( int width, int height) {
10 g_width = width;
11 g_height = height;
12
13 if (SDL_Init (SDL_INIT_EVERYTHING) == -1) {
14 fprintf( stderr, "Can't initialize SDL.\n" );
15 exit (1);
16 }
17
18 screen = SDL_SetVideoMode ( width, height, 24, SDL_SWSURFACE | SDL_DOUBLEBUF );
19 if( !screen ) {
20 fprintf( stderr, "Can't set video mode.\n" );
21 exit( 1 );
22 }
23
24 memset( screen->pixels, 0, width * height * 3 );
25 SDL_WM_SetCaption ( "GodMachine", "GodMachine" );
26
27}
28
29void display_clear( ) {
30// rectangleColor( screen, 0, 0, g_width, g_height, 0 );
31
32 memset( screen->pixels, 0, g_width * g_height * 3 );
33 vlineColor( screen, g_width / 2, 0, g_height, 0xffffffff );
34 hlineColor( screen, 0, g_width, g_height / 2, 0xffffffff );
35}
36
37void display_circle( int wii_id, int x, int y, int w ) {
38 int xoff = ( wii_id & 1 ) * g_width / 2;
39 int yoff = ( wii_id >> 1 ) * g_height / 2;
40
41 filledCircleColor(screen, x + xoff, y + yoff, w, 0xffffffff );
42
43}
44
45void display_line( int wii_id, int x0, int y0, int x1, int y1 ) {
46 int xoff = ( wii_id & 1 ) * g_width / 2;
47 int yoff = ( wii_id >> 1 ) * g_height / 2;
48
49 aalineColor( screen, x0 + xoff, y0 + yoff, x1 + xoff, y1 + yoff, 0xffffffff );
50
51}
52
53void display_rectangle( int wii_id, int x, int y, int w, int h ) {
54 int xoff = ( wii_id & 1 ) * g_width / 2;
55 int yoff = ( wii_id >> 1 ) * g_height / 2;
56
57 boxColor( screen, x + xoff, y + yoff, x + xoff + w, y + yoff + h, 0xffffffff );
58
59}
60
61void display_redraw() {
62 SDL_Flip( screen );
63}