From 94ce6ff2d480c9ce6b806cbc22500a7156ac4479 Mon Sep 17 00:00:00 2001 From: hazeycode <22148308+hazeycode@users.noreply.github.com> Date: Wed, 25 Jun 2025 01:35:01 +0100 Subject: [PATCH] Wrapper: createProgram and createShader can return error. --- src/wrapper.zig | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/wrapper.zig b/src/wrapper.zig index 30c5673..94b5327 100644 --- a/src/wrapper.zig +++ b/src/wrapper.zig @@ -2571,13 +2571,21 @@ pub fn Wrap(comptime bindings: anytype) type { } // pub var createProgram: *const fn () callconv(.C) Uint = undefined; - pub fn createProgram() Program { - return @enumFromInt(bindings.createProgram()); + pub fn createProgram() !Program { + const maybe_program = bindings.createProgram(); + if (maybe_program <= @intFromEnum(Program.invalid)) { + return error.glCreateProgramFailed; + } + return @enumFromInt(maybe_program); } // pub var createShader: *const fn (type: Enum) callconv(.C) Uint = undefined; - pub fn createShader(@"type": ShaderType) Shader { - return @enumFromInt(bindings.createShader(@intFromEnum(@"type"))); + pub fn createShader(@"type": ShaderType) !Shader { + const maybe_shader = bindings.createShader(@intFromEnum(@"type")); + if (maybe_shader <= @intFromEnum(Shader.invalid)) { + return error.glCreateShaderFailed; + } + return @enumFromInt(maybe_shader); } // pub var deleteProgram: *const fn (program: Uint) callconv(.C) void = undefined;