aboutsummaryrefslogtreecommitdiff
path: root/tests/test_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_main.c')
-rw-r--r--tests/test_main.c96
1 files changed, 47 insertions, 49 deletions
diff --git a/tests/test_main.c b/tests/test_main.c
index e24d17f..c171192 100644
--- a/tests/test_main.c
+++ b/tests/test_main.c
@@ -1,52 +1,50 @@
-/* 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();
+#include <saffron_api.h>
+#include <SDL3/SDL_rect.h>
+#include <SDL3/SDL_render.h>
+#include <saffron.h>
+
+/* PLEASE don't do this in production
+ * when wrappers are implemented,
+ * THEY will make draw functions for you
+ * THIS IS A BAD IDEA */
+void my_test_draw(SaffronWidget* self, SDL_Renderer* renderer) {
+ SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
+ SDL_FRect rect = {self->x, self->y, self->w, self->h};
+ SDL_RenderFillRect(renderer, &rect);
+
+ SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
+ SDL_RenderRect(renderer, &rect);
+}
+
+int main(void) {
+ saffron_init();
+
+ SaffronWindow* window = saffron_window_new("saffron test", 800, 600);
+
+ /* i guess IM THE LUNATIC NOW
+ * DEAL WITH IT */
+ SaffronWidget* test = saffron_widget_new();
+ test->x = 100;
+ test->y = 100;
+ test->w = 200;
+ test->h = 150;
+ test->draw = my_test_draw;
+
+ /* lunatic method 2 */
+ SaffronWidget* test2 = saffron_widget_new();
+ test2->x = 150;
+ test2->y = 500;
+ test2->w = 300;
+ test2->h = 170;
+ test2->draw = my_test_draw;
+
+ saffron_widget_add_child(window->root, test);
+ saffron_widget_add_child(window->root, test2);
+
+ saffron_window_main(window);
+
+ saffron_window_free(window);
+ saffron_quit();
return 0;
}