From 3a032cc9ca7f2b2c86ab5eb43c8afbf288d906a3 Mon Sep 17 00:00:00 2001 From: Jason Bou-Samra <154414066+bou-samra@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:51:32 +1000 Subject: [PATCH] Create sdl.c --- src/sdl.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/sdl.c diff --git a/src/sdl.c b/src/sdl.c new file mode 100644 index 0000000..ba6be70 --- /dev/null +++ b/src/sdl.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include "sprite_sheet.h" +#include "events.h" + +/////////////////////// SDL STRUCTURES ///////////////////////// +SDL_Window *window = NULL; +SDL_Renderer *sr; +SDL_Event event; +SDL_RWops* rwops_new; +SDL_Surface* image; +SDL_Texture * texture; + +///////////////////////// WINDOW PARMS ///////////////////////// +#define WIDTH 1280 // pixels +#define HEIGHT 800 // pixels +#define TITLE "FUN COLUMNS" // window title + +/////////////////////// INITIALIZE SDL ///////////////////////// +int initSDL () { + SDL_Init (SDL_INIT_EVERYTHING); + +/* new window */ + window = SDL_CreateWindow ( TITLE, /* title */ + SDL_WINDOWPOS_CENTERED,/* x pos */ + SDL_WINDOWPOS_CENTERED,/* w pos */ + WIDTH, /* width */ + HEIGHT, /* height */ + SDL_WINDOW_BORDERLESS); /* Additional flag(s) */ + +if (window == NULL) { + fprintf (stderr, "SDL window failed to initialise: %s\n", + SDL_GetError ()); + return 1; + } /* deal with error */ + + sr = SDL_CreateRenderer (window, 0, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); /* create renderer */ + SDL_RenderSetScale (sr, 4.0, 4.0); // scale x2 x4 options on cli +} + +/////////////////////// SHUTDOWN SDL ///////////////////////// +int shutdownSDL () { + SDL_DestroyWindow (window); // free memory + SDL_Quit (); // shutdown entire sdl sub-systems + return 0; +} + +///////////////// INIT GFX ///////////////// +int init_gfx(void) { + rwops_new = SDL_RWFromMem(byn, sizeof(byn)); + image = IMG_LoadPNG_RW(rwops_new); + texture = SDL_CreateTextureFromSurface(sr, image); + SDL_FreeSurface( image ); + image = NULL; + return 0; +} + +///////////////// WAIT FOR KEY ///////////////// +int check_key(void) { + int kkey = 1; + while(kkey) { + SDL_Delay(40); + while(SDL_PollEvent(&event)) { + if(event.type == SDL_KEYDOWN) { + kkey = 0; + } + } + } +}