From ff10e78b644333d9d4a39b3eb5b7bc84946ca8b4 Mon Sep 17 00:00:00 2001 From: Sebastian Cabrera Date: Sat, 9 Aug 2025 20:36:03 -0400 Subject: [PATCH] feat: Add basic SDL2 window application --- src/main.cpp | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/main.cpp diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..231a050 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,61 @@ +#include +#include + +int main(int argc, char* argv[]) { + // Initialize SDL2 + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + std::cerr << "SDL2 initialization failed: " << SDL_GetError() << std::endl; + return 1; + } + + // Create window + SDL_Window* window = SDL_CreateWindow( + "Observations on the Sublime Dynamics of Eroding Matter", + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + 800, 600, + SDL_WINDOW_SHOWN + ); + + if (!window) { + std::cerr << "Window creation failed: " << SDL_GetError() << std::endl; + SDL_Quit(); + return 1; + } + + // Create renderer + SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); + if (!renderer) { + std::cerr << "Renderer creation failed: " << SDL_GetError() << std::endl; + SDL_DestroyWindow(window); + SDL_Quit(); + return 1; + } + + // Main event loop + bool running = true; + SDL_Event event; + + while (running) { + // Handle events + while (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + running = false; + } + } + + // Clear screen with black background + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + + // Present the renderer + SDL_RenderPresent(renderer); + } + + // Cleanup + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); + + return 0; +}