about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authormakefunstuff <[email protected]>2024-07-02 20:18:56 +0200
committermakefunstuff <[email protected]>2024-07-02 20:18:56 +0200
commit93e7e42605a5f62519c30c86ab65bd529edb3389 (patch)
tree311b94836418b02ba8591abaa3256cbc3bad62ea /src
parent756dd2943a4082e9037c99f0cc0567f9d6cdc59d (diff)
downloadtinkerbunk-93e7e42605a5f62519c30c86ab65bd529edb3389.tar.gz
still borken
Diffstat (limited to '')
-rw-r--r--src/sdl-window.zig34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/sdl-window.zig b/src/sdl-window.zig
index 9bd088e..2e292ed 100644
--- a/src/sdl-window.zig
+++ b/src/sdl-window.zig
@@ -3,12 +3,15 @@ const c = @cImport({
 });
 
 pub fn present_sdl_window() !void {
+    const WINDOW_WIDTH: u32 = 800;
+    const WINDOW_HEIGHT: u32 = 600;
+
     if (c.SDL_Init(c.SDL_INIT_VIDEO) != 0) {
         c.SDL_Log("Window is not initialized: %s", c.SDL_GetError());
     }
     defer c.SDL_Quit();
 
-    const window = c.SDL_CreateWindow("Aken", c.SDL_WINDOWPOS_CENTERED, c.SDL_WINDOWPOS_CENTERED, 800, 600, c.SDL_WINDOW_OPENGL) orelse {
+    const window = c.SDL_CreateWindow("Aken", c.SDL_WINDOWPOS_CENTERED, c.SDL_WINDOWPOS_CENTERED, WINDOW_WIDTH, WINDOW_HEIGHT, c.SDL_WINDOW_OPENGL) orelse {
         c.SDL_Log("Window create error, reason: %s", c.SDL_GetError());
         return error.SDLWindowInitError;
     };
@@ -20,8 +23,33 @@ pub fn present_sdl_window() !void {
     };
     defer c.SDL_DestroyRenderer(renderer);
 
-    while (true) {
+    const color = c.SDL_Color{ .r = 255, .g = 255, .b = 255, .a = 255 };
+    _ = c.SDL_SetRenderDrawColor(renderer, color.r, color.g, color.b, color.a);
+
+    const rect_height = 100;
+    const rect_width = 100;
+
+    const rect_x = WINDOW_WIDTH / 2 - rect_width / 2;
+    const rect_y = WINDOW_HEIGHT / 2 - rect_height / 2;
+
+    const rect = c.SDL_Rect{ .x = rect_x, .y = rect_y, .w = rect_width, .h = rect_height };
+
+    var quit = false;
+    while (!quit) {
+        var event: c.SDL_Event = undefined;
+
+        while (c.SDL_PollEvent(&event) != 0) {
+            switch (event.type) {
+                c.SDL_Quit => {
+                    quit = true;
+                },
+                else => {},
+            }
+        }
+        _ = c.SDL_RenderFillRect(renderer, &rect);
         _ = c.SDL_RenderClear(renderer);
-        c.SDL_RenderPresent(renderer);
+        _ = c.SDL_RenderPresent(renderer);
+
+        _ = c.SDL_Delay(20);
     }
 }