aboutsummaryrefslogtreecommitdiffstats
path: root/src/debug_gl.zig
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-01-26 19:49:25 +0000
committers-ol <s-ol@users.noreply.github.com>2020-01-26 19:49:25 +0000
commit885a8652cb8a433a18811d90048d11c1ec67b60e (patch)
tree52b845a825c91ec878983eb1078b4bd48f27ec73 /src/debug_gl.zig
parentremove offset default uniform (diff)
downloadglsl-view-885a8652cb8a433a18811d90048d11c1ec67b60e.tar.gz
glsl-view-885a8652cb8a433a18811d90048d11c1ec67b60e.zip
break OSC in favor of uniform caching
Diffstat (limited to 'src/debug_gl.zig')
-rw-r--r--src/debug_gl.zig22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/debug_gl.zig b/src/debug_gl.zig
index 2fdcda0..ebb552f 100644
--- a/src/debug_gl.zig
+++ b/src/debug_gl.zig
@@ -6,11 +6,27 @@ const builtin = @import("builtin");
pub const is_on = if (builtin.mode == builtin.Mode.ReleaseFast) c.GL_FALSE else c.GL_TRUE;
+fn glDebugMessage(source: c.GLenum, typ: c.GLenum, id: c.GLuint, severity: c.GLenum, length: c.GLsizei, _message: [*c]const u8, user: ?*const c_void) callconv(.C) void {
+ const message = _message[0..@intCast(usize, length)];
+ std.debug.warn("GL Callback [{}] {} / {}: {s}\n", .{ source, typ, severity, message });
+}
+
+pub fn init() void {
+ if (is_on == c.GL_TRUE) {
+ c.glEnable(c.GL_DEBUG_OUTPUT);
+ c.glDebugMessageCallback(glDebugMessage, null);
+ }
+}
+
pub fn assertNoError() void {
- if (builtin.mode != builtin.Mode.ReleaseFast) {
- const err = c.glGetError();
- if (err != c.GL_NO_ERROR) {
+ if (is_on == c.GL_TRUE) {
+ var err = c.glGetError();
+ while (err != c.GL_NO_ERROR) : (err = c.glGetError()) {
panic("GL error: {}\n", .{err});
+ } else {
+ return;
}
+
+ panic("GL Errors encountered.\n", .{err});
}
}