summaryrefslogtreecommitdiff
path: root/main.zig
diff options
context:
space:
mode:
Diffstat (limited to 'main.zig')
-rw-r--r--main.zig32
1 files changed, 22 insertions, 10 deletions
diff --git a/main.zig b/main.zig
index ab5f802..692bdc1 100644
--- a/main.zig
+++ b/main.zig
@@ -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);