Create sdl.c
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_image.h>
|
||||
#include <stdbool.h>
|
||||
#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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user