Fixes Int to CInt issue; pixel;clear;draw;
[qpawn.git] / qpawn.c
blob104b233b445095b909994266870698f1772d26b2
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <SDL2/SDL.h>
5 // redfefine as bitfield
6 enum button {
7 A, B, X, Y, U, D, L, R, ST, SE, SL, SR };
8 enum btnstate {
9 UP, DOWN };
10 struct event {
11 enum btnstate state;
12 enum button btn; };
14 // FFI these
15 void quit();
16 void pixel(int, int);
17 void color(int, int, int);
18 void clear();
19 void draw();
20 void sleep(int);
21 struct event* events();
24 static SDL_Window* window = 0;
25 static SDL_Renderer* renderer = 0;
27 void init()
29 if (SDL_Init(SDL_INIT_VIDEO) != 0) {
30 printf("sdl init failed");
31 quit();
32 return;
34 if (SDL_CreateWindowAndRenderer(640,480,0,&window,&renderer)!=0){
35 printf("create window&render failed");
36 quit();
37 return;
41 void quit()
43 SDL_DestroyRenderer(renderer);
44 SDL_DestroyWindow(window);
45 SDL_Quit();
48 void clear()
50 SDL_RenderClear(renderer);
53 void color(int r, int g, int b)
55 SDL_SetRenderDrawColor(renderer, r, g, b, 255);
58 void pixel(int x, int y)
60 SDL_RenderDrawPoint(renderer, x, y);
63 void draw()
65 SDL_RenderPresent(renderer);
68 void sleep(int t)
70 SDL_Delay(t * 1000);