diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2020-01-26 19:49:25 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2020-01-26 19:49:25 +0000 |
| commit | 885a8652cb8a433a18811d90048d11c1ec67b60e (patch) | |
| tree | 52b845a825c91ec878983eb1078b4bd48f27ec73 /src/debug_gl.zig | |
| parent | remove offset default uniform (diff) | |
| download | glsl-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.zig | 22 |
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}); } } |
