From 4e3e4f9aabf30fe60e3b0ef56efe100eef302b06 Mon Sep 17 00:00:00 2001 From: Josh Lyon Date: Tue, 12 Aug 2025 20:02:48 -0600 Subject: [PATCH] rendering rectangles --- src/main.cpp | 65 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 2cf8aa8..418ff3b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,8 +9,11 @@ including commercial applications, and to alter it and redistribute it freely. */ +#include +#include #include #define SDL_MAIN_USE_CALLBACKS 1 /* use the callbacks instead of main() */ + #include #include @@ -20,46 +23,56 @@ static SDL_Renderer *renderer = nullptr; /* This function runs once at startup. */ SDL_AppResult SDL_AppInit(void **appstate, int argc, char *argv[]) { - /* Create the window */ - if (!SDL_CreateWindowAndRenderer("Hello World", 800, 600, SDL_WINDOW_FULLSCREEN, &window, &renderer)) { - SDL_Log("Couldn't create window and renderer: %s", SDL_GetError()); - return SDL_APP_FAILURE; - } - return SDL_APP_CONTINUE; + /* Create the window */ + if (!SDL_CreateWindowAndRenderer("Hello World", 800, 600, SDL_WINDOW_FULLSCREEN, &window, &renderer)) { + SDL_Log("Couldn't create window and renderer: %s", SDL_GetError()); + return SDL_APP_FAILURE; + } + return SDL_APP_CONTINUE; } /* This function runs when a new event (mouse input, keypresses, etc) occurs. */ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) { - if (event->type == SDL_EVENT_KEY_DOWN || - event->type == SDL_EVENT_QUIT) { - return SDL_APP_SUCCESS; /* end the program, reporting success to the OS. */ - } - return SDL_APP_CONTINUE; + if (event->type == SDL_EVENT_KEY_DOWN || + event->type == SDL_EVENT_QUIT) { + return SDL_APP_SUCCESS; /* end the program, reporting success to the OS. */ + } + return SDL_APP_CONTINUE; } /* This function runs once per frame, and is the heart of the program. */ SDL_AppResult SDL_AppIterate(void *appstate) { std::string message("Hello World!"); - int w = 0, h = 0; - float x, y; - const float scale = 4.0f; + int w = 0, h = 0; + float x, y; + const float scale = 4.0f; - /* Center the message and scale it up */ - SDL_GetRenderOutputSize(renderer, &w, &h); - SDL_SetRenderScale(renderer, scale, scale); - x = ((w / scale) - SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE * message.length()) / 2; - y = ((h / scale) - SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE) / 2; + /* Center the message and scale it up */ + SDL_GetRenderOutputSize(renderer, &w, &h); + SDL_SetRenderScale(renderer, scale, scale); + x = ((w / scale) - SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE * message.length()) / 2; + y = ((h / scale) - SDL_DEBUG_TEXT_FONT_CHARACTER_SIZE) / 2; - /* Draw the message */ - SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); - SDL_RenderClear(renderer); - SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); - SDL_RenderDebugText(renderer, x, y, message.c_str()); - SDL_RenderPresent(renderer); + SDL_FRect rect { + .x = 30, + .y = 30, + .w = 100, + .h = 100 + }; - return SDL_APP_CONTINUE; + + /* Draw the message */ + SDL_SetRenderDrawColor(renderer, 0, 0, 200, 255); + SDL_RenderClear(renderer); + SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255); + SDL_RenderFillRect(renderer, &rect); + SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + SDL_RenderDebugText(renderer, x, y, message.c_str()); + SDL_RenderPresent(renderer); + + return SDL_APP_CONTINUE; } /* This function runs once at shutdown. */