#include "SDL2/SDL.h" #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 Cleanup(void); void HandleInput(void); 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; } 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; } while(1){ HandleInput(); SDL_Delay(16); SDL_RenderPresent(app.renderer); } } void Cleanup(void) { SDL_DestroyWindow(app.window); SDL_DestroyRenderer(app.renderer); TTF_Quit(); SDL_Quit(); } void HandleInput(void) { SDL_Event event; while(SDL_PollEvent(&event)) { switch (event.type) { case SDL_QUIT: exit(0); break; case SDL_MOUSEBUTTONDOWN: exit(0); case SDL_KEYDOWN: default: break; } } }