diff options
| author | andromeda <andromeda@lenovo> | 2026-06-14 01:31:35 +0200 |
|---|---|---|
| committer | andromeda <andromeda@lenovo> | 2026-06-14 01:31:35 +0200 |
| commit | 00205c3111c41018aad135456a70ecb4943cb8f0 (patch) | |
| tree | 7dba8710cb43c0f0ed856a340c0e1a1265653915 /main.zig | |
| parent | d3a1fe476d6ce9cac90fea61d03f8158b2d09c0e (diff) | |
RSGL
Diffstat (limited to 'main.zig')
| -rw-r--r-- | main.zig | 32 |
1 files changed, 22 insertions, 10 deletions
@@ -1,5 +1,6 @@ const std = @import("std"); -const rgfw = @import("rgfw.zig"); +const rgfw = @import("rgfw"); +const rsgl = @import("rsgl"); fn keyfunc (event: [*c]const rgfw.RGFW_event) callconv(.c) void { if(event.*.key.value == rgfw.RGFW_keyEscape) { @@ -8,23 +9,34 @@ fn keyfunc (event: [*c]const rgfw.RGFW_event) callconv(.c) void { } pub fn main() !void { + var hints: *rgfw.RGFW_glHints = rgfw.RGFW_getGlobalHints_OpenGL(); + hints.major = 3; + hints.minor = 3; + hints.profile = rgfw.RGFW_glCompatibility; + rgfw.RGFW_setGlobalHints_OpenGL(hints); + const win: ?*rgfw.RGFW_window = rgfw.RGFW_createWindow("a window", 0, 0, 800, 600, rgfw.RGFW_windowCenter | rgfw.RGFW_windowNoResize | rgfw.RGFW_windowOpenGL); _ = rgfw.RGFW_setEventCallback(rgfw.RGFW_keyPressed, keyfunc); - var mouseX: i32 = 0; - var mouseY: i32 = 0; + const renderer: *rsgl.RSGL_renderer = rsgl.RSGL_renderer_init(rsgl.RSGL_GL_rendererProc(), @constCast(&rgfw.RGFW_getProcAddress_OpenGL)); + + rsgl.RSGL_renderer_viewport(renderer, rsgl.RSGL_RECT(0, 0, 500, 500)); + rsgl.RSGL_renderer_updateSize(renderer, 500, 500); while(rgfw.RGFW_FALSE == rgfw.RGFW_window_shouldClose(win)) { - var event: rgfw.RGFW_event = undefined; - while(rgfw.RGFW_TRUE == rgfw.RGFW_window_checkEvent(win, &event)) { - _ = rgfw.RGFW_window_getMouse(win, &mouseX, &mouseY); - if(event.type == rgfw.RGFW_mouseButtonPressed and event.button.value == rgfw.RGFW_mouseLeft) { - std.debug.print("You clicked at x: {d}, y: {d}\n", .{mouseX, mouseY}); - } + rgfw.RGFW_pollEvents(); + if(rgfw.RGFW_TRUE == rgfw.RGFW_isMousePressed(rgfw.RGFW_mouseLeft)) { + std.debug.print("You clicked\n", .{}); } if(rgfw.RGFW_TRUE == rgfw.RGFW_isMousePressed(rgfw.RGFW_mouseRight)) { - std.debug.print("The right mouse button was clicked at x: {d}, y: {d}\n", .{mouseX, mouseY}); + std.debug.print("The right mouse button was clicked\n", .{}); } + + rsgl.RSGL_renderer_clear(renderer, rsgl.RSGL_RGB(10, 50, 100)); + + rsgl.RSGL_renderer_setColor(renderer, rsgl.RSGL_RGB(255, 0, 0)); + _ = rsgl.RSGL_drawRect(renderer, rsgl.RSGL_RECT(200, 200, 200, 200)); + rsgl.RSGL_renderer_render(renderer); rgfw.RGFW_window_swapBuffers_OpenGL(win); } rgfw.RGFW_window_close(win); |
