aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_main.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test_main.c b/tests/test_main.c
new file mode 100644
index 0000000..e24d17f
--- /dev/null
+++ b/tests/test_main.c
@@ -0,0 +1,52 @@
+/* this doesnt really test saffron's api right now
+ * because i need to actually implement stuff
+ * but its good refactor for now
+*/
+#include <SDL3/SDL.h>
+#include <SDL3/SDL_main.h>
+#include <SDL3_ttf/SDL_ttf.h>
+
+int main(int argc, char *argv[]) {
+ SDL_Init(SDL_INIT_VIDEO);
+ TTF_Init();
+
+ SDL_Window *window = SDL_CreateWindow("saffron", 800, 600, 0);
+ SDL_Renderer *renderer = SDL_CreateRenderer(window, NULL);
+
+ TTF_Font *font = TTF_OpenFont("/usr/share/fonts/maple-mono/MapleMonoNL-Regular.ttf", 20); // "works on my machine" - Arslaan, 2026
+
+ bool running = true;
+ SDL_Event event;
+ SDL_FRect rect;
+ rect.x = rect.y = 100;
+ rect.w = rect.h = 100;
+
+ SDL_FRect text_rect = {200, 200, 0, 0};
+ SDL_Color white = {255, 255, 255, 255};
+ SDL_Surface *surface = TTF_RenderText_Blended(font, "hello, saffron!", 0, white);
+ SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);
+ SDL_DestroySurface(surface);
+ SDL_GetTextureSize(texture, &text_rect.w, &text_rect.h);
+
+ while (running) {
+ while (SDL_PollEvent(&event)) {
+ if (event.type == SDL_EVENT_QUIT) {
+ running = false;
+ }
+ }
+
+ SDL_SetRenderDrawColor(renderer, 0, 0, 0, SDL_ALPHA_OPAQUE);
+ SDL_RenderClear(renderer);
+ SDL_SetRenderDrawColor(renderer, 255, 0, 0, SDL_ALPHA_OPAQUE);
+ SDL_RenderFillRect(renderer, &rect);
+ SDL_RenderTexture(renderer, texture, NULL, &text_rect);
+ SDL_RenderPresent(renderer);
+ }
+
+ TTF_CloseFont(font);
+ TTF_Quit();
+ SDL_DestroyRenderer(renderer);
+ SDL_DestroyWindow(window);
+ SDL_Quit();
+ return 0;
+}