Skip to content

Commit d235e52

Browse files
authored
Merge pull request #26 from LukaTD/wrapper-buffer-15
Added missing OpenGL 1.5 buffer functions to wrapper
2 parents 8204237 + 51a1ab1 commit d235e52

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

src/wrapper.zig

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,6 +1231,43 @@ pub fn Wrap(comptime bindings: anytype) type {
12311231
uniform_buffer = UNIFORM_BUFFER,
12321232
};
12331233

1234+
pub const Access = enum(Enum) {
1235+
//--------------------------------------------------------------------------------------
1236+
// OpenGL 1.5 (Core Profile)
1237+
//--------------------------------------------------------------------------------------
1238+
read_only = READ_ONLY,
1239+
write_only = WRITE_ONLY,
1240+
read_write = READ_WRITE,
1241+
};
1242+
1243+
pub const BufferParameter = enum(Enum) {
1244+
//--------------------------------------------------------------------------------------
1245+
// OpenGL 1.5 (Core Profile)
1246+
//--------------------------------------------------------------------------------------
1247+
buffer_size = BUFFER_SIZE,
1248+
buffer_usage = BUFFER_USAGE,
1249+
buffer_access = BUFFER_ACCESS,
1250+
buffer_mapped = BUFFER_MAPPED,
1251+
//--------------------------------------------------------------------------------------
1252+
// OpenGL 3.0 (Core Profile)
1253+
//--------------------------------------------------------------------------------------
1254+
buffer_access_flags = BUFFER_ACCESS_FLAGS,
1255+
buffer_map_offset = BUFFER_MAP_OFFSET,
1256+
buffer_map_length = BUFFER_MAP_LENGTH,
1257+
//--------------------------------------------------------------------------------------
1258+
// OpenGL 4.4 (Core Profile)
1259+
//--------------------------------------------------------------------------------------
1260+
buffer_immutable_storage = BUFFER_IMMUTABLE_STORAGE,
1261+
buffer_storage_flags = BUFFER_STORAGE_FLAGS,
1262+
};
1263+
1264+
pub const BufferPointerParameter = enum(Enum) {
1265+
//--------------------------------------------------------------------------------------
1266+
// OpenGL 1.5 (Core Profile)
1267+
//--------------------------------------------------------------------------------------
1268+
buffer_map_pointer = BUFFER_MAP_POINTER,
1269+
};
1270+
12341271
pub const IndexedBufferTarget = enum(Enum) {
12351272
//--------------------------------------------------------------------------------------
12361273
// OpenGL 3.0 (Core Profile)
@@ -2614,6 +2651,9 @@ pub fn Wrap(comptime bindings: anytype) type {
26142651
}
26152652

26162653
// pub var isBuffer: *const fn (buffer: Uint) callconv(.c) Boolean = undefined;
2654+
pub fn isBuffer(buffer: Buffer) bool {
2655+
return bindings.isBuffer(@intFromEnum(buffer)) == TRUE;
2656+
}
26172657

26182658
// pub var bufferData: *const fn (
26192659
// target: Enum,
@@ -2656,14 +2696,51 @@ pub fn Wrap(comptime bindings: anytype) type {
26562696
// size: Sizeiptr,
26572697
// data: ?*anyopaque,
26582698
// ) callconv(.c) void = undefined;
2699+
pub fn getBufferSubData(
2700+
target: BufferTarget,
2701+
offset: usize,
2702+
data: []u8,
2703+
) void {
2704+
bindings.getBufferSubData(
2705+
@intFromEnum(target),
2706+
@as(Intptr, @bitCast(offset)),
2707+
@as(Sizeiptr, @bitCast(data.len)),
2708+
data.ptr,
2709+
);
2710+
}
2711+
26592712
// pub var mapBuffer: *const fn (target: Enum, access: Enum) callconv(.c) ?*anyopaque = undefined;
2713+
pub fn mapBuffer(target: BufferTarget, access: Access) ?[*]u8 {
2714+
return @ptrCast(bindings.mapBuffer(@intFromEnum(target), @intFromEnum(access)));
2715+
}
2716+
26602717
// pub var unmapBuffer: *const fn (target: Enum) callconv(.c) Boolean = undefined;
2718+
pub fn unmapBuffer(target: BufferTarget) bool {
2719+
return bindings.unmapBuffer(@intFromEnum(target)) == TRUE;
2720+
}
2721+
26612722
// pub var getBufferParameteriv: *const fn (target: Enum, pname: Enum, params: [*c]Int) callconv(.c) void = undefined;
2723+
pub fn getBufferParameteriv(target: BufferTarget, pname: BufferParameter, params: []i32) void {
2724+
bindings.getBufferParameteriv(
2725+
@intFromEnum(target),
2726+
@intFromEnum(pname),
2727+
@as([*c]Int, @ptrCast(params.ptr)),
2728+
);
2729+
}
2730+
26622731
// pub var getBufferPointerv: *const fn (
26632732
// target: Enum,
26642733
// pname: Enum,
26652734
// params: [*c]?*anyopaque,
26662735
// ) callconv(.c) void = undefined;
2736+
pub fn getBufferPointerv(target: BufferTarget, pname: BufferPointerParameter, params: *?[*]u8) void {
2737+
bindings.getBufferPointerv(
2738+
@intFromEnum(target),
2739+
@intFromEnum(pname),
2740+
@as([*c]?*anyopaque, @ptrCast(params)),
2741+
);
2742+
}
2743+
26672744
//------------------------------------------------------------------------------------------
26682745
//
26692746
// OpenGL 2.0 (Core Profile)

0 commit comments

Comments
 (0)