From 63ce7114a487f93591095241748e723212ed9dd4 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 2 Apr 2022 20:17:53 -0700 Subject: [PATCH] opengl: draw functions --- src/main.zig | 14 +++++++------- src/opengl.zig | 1 + src/opengl/draw.zig | 15 +++++++++++++++ 3 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 src/opengl/draw.zig diff --git a/src/main.zig b/src/main.zig index 33a0ff686..34fe82f0d 100644 --- a/src/main.zig +++ b/src/main.zig @@ -83,9 +83,9 @@ pub fn main() !void { // Create our bufer or vertices const vertices = [_]f32{ - -0.5, -0.5, 0.0, 0.0, 0.0, // left - 0.5, -0.5, 0.0, 1.0, 0.0, // right - 0.0, 0.5, 0.0, 0.5, 1.0, // top + -0.8, -0.8, 0.0, 0.0, 0.0, // left + 0.8, -0.8, 0.0, 1.0, 0.0, // right + 0.0, 0.8, 0.0, 0.5, 1.0, // top }; const vao = try gl.VertexArray.create(); defer vao.destroy(); @@ -112,14 +112,14 @@ pub fn main() !void { // Wait for the user to close the window. while (!window.shouldClose()) { // Setup basic OpenGL settings - gl.c.glClearColor(0.2, 0.3, 0.3, 1.0); - gl.c.glClear(gl.c.GL_COLOR_BUFFER_BIT); + gl.clearColor(0.2, 0.3, 0.3, 1.0); + gl.clear(gl.c.GL_COLOR_BUFFER_BIT); try program.use(); - gl.c.glBindTexture(gl.c.GL_TEXTURE_2D, tex.id); + _ = try tex.bind(gl.c.GL_TEXTURE_2D); try vao.bind(); - gl.c.glDrawArrays(gl.c.GL_TRIANGLES, 0, 3); + try gl.drawArrays(gl.c.GL_TRIANGLES, 0, 3); // const pos = try window.getCursorPos(); // std.log.info("CURSOR: {}", .{pos}); diff --git a/src/opengl.zig b/src/opengl.zig index 5a16c3fcc..00e5b8652 100644 --- a/src/opengl.zig +++ b/src/opengl.zig @@ -17,3 +17,4 @@ pub const Program = @import("opengl/Program.zig"); pub const Shader = @import("opengl/Shader.zig"); pub const Texture = @import("opengl/Texture.zig"); pub const VertexArray = @import("opengl/VertexArray.zig"); +pub usingnamespace @import("opengl/draw.zig"); diff --git a/src/opengl/draw.zig b/src/opengl/draw.zig new file mode 100644 index 000000000..a87cc70b6 --- /dev/null +++ b/src/opengl/draw.zig @@ -0,0 +1,15 @@ +const c = @import("c.zig"); +const errors = @import("errors.zig"); + +pub fn clearColor(r: f32, g: f32, b: f32, a: f32) void { + c.glClearColor(r, g, b, a); +} + +pub fn clear(mask: c.GLbitfield) void { + c.glClear(mask); +} + +pub fn drawArrays(mode: c.GLenum, first: c.GLint, count: c.GLsizei) !void { + c.glDrawArrays(mode, first, count); + try errors.getError(); +}