Skip to content

Commit ec38a51

Browse files
authored
Wrapper: createProgram and createShader can return error. (#18)
1 parent ec8886f commit ec38a51

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

src/wrapper.zig

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2571,13 +2571,21 @@ pub fn Wrap(comptime bindings: anytype) type {
25712571
}
25722572

25732573
// pub var createProgram: *const fn () callconv(.C) Uint = undefined;
2574-
pub fn createProgram() Program {
2575-
return @enumFromInt(bindings.createProgram());
2574+
pub fn createProgram() !Program {
2575+
const maybe_program = bindings.createProgram();
2576+
if (maybe_program <= @intFromEnum(Program.invalid)) {
2577+
return error.glCreateProgramFailed;
2578+
}
2579+
return @enumFromInt(maybe_program);
25762580
}
25772581

25782582
// pub var createShader: *const fn (type: Enum) callconv(.C) Uint = undefined;
2579-
pub fn createShader(@"type": ShaderType) Shader {
2580-
return @enumFromInt(bindings.createShader(@intFromEnum(@"type")));
2583+
pub fn createShader(@"type": ShaderType) !Shader {
2584+
const maybe_shader = bindings.createShader(@intFromEnum(@"type"));
2585+
if (maybe_shader <= @intFromEnum(Shader.invalid)) {
2586+
return error.glCreateShaderFailed;
2587+
}
2588+
return @enumFromInt(maybe_shader);
25812589
}
25822590

25832591
// pub var deleteProgram: *const fn (program: Uint) callconv(.C) void = undefined;

0 commit comments

Comments
 (0)