commit 1cb3ba87f81c495bffc93a1ce3500daf625da1f8 Author: Garritt McCune Date: Thu Oct 27 19:41:26 2022 -0500 Setup the boilerplate for SDL and init commit. diff --git a/main.c b/main.c new file mode 100644 index 0000000..4a11b7e --- /dev/null +++ b/main.c @@ -0,0 +1,97 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +const int SCREEN_WIDTH = 1280; +const int SCREEN_HEIGHT = 720; + +typedef struct { + SDL_Window *window; + SDL_Renderer *renderer; + TTF_Font* font; +} App; + +App app; + +void HandleInput(void); +int Exit = 0; + +void Cleanup(void) { + SDL_DestroyWindow(app.window); + SDL_DestroyRenderer(app.renderer); + TTF_CloseFont(app.font); + TTF_Quit(); + SDL_Quit(); +} + +int main(int argc, char** argv){ + memset(&app, 0, sizeof(app)); + + atexit(Cleanup); + + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + printf("SDL failed: %s\n", SDL_GetError()); + return -1; + } + + if (TTF_Init() < 0) { + printf("Failed to init TTF: %s\n", TTF_GetError()); + return -1; + } + + app.font = TTF_OpenFont("/usr/share/fonts/TTF/Hack-Regular.ttf", 14); + + if (app.font == NULL) { + printf("Failed to load font\n"); + return -1; + } + + app.window = SDL_CreateWindow("SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); + + if (app.window == NULL) { + printf("Window creation failed: %s\n", SDL_GetError()); + return -1; + } + + SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear"); + + app.renderer = SDL_CreateRenderer(app.window, -1, SDL_RENDERER_ACCELERATED); + + if (app.renderer == NULL) { + printf("Renderer failed: %s\n", SDL_GetError()); + return -1; + } +} + +void HandleInput(void) { + SDL_Event event; + while(SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_QUIT: + case SDL_MOUSEBUTTONDOWN: + Exit = 1; + break; + case SDL_MOUSEMOTION: + //if (MainMenu->HitCheck(event.motion.x, event.motion.y, &MainMenu->Area)) { + case SDL_TEXTINPUT: + case SDL_KEYDOWN: + default: + break; + } + } +} \ No newline at end of file