Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions src/wrapper.zig
Original file line number Diff line number Diff line change
Expand Up @@ -1231,6 +1231,43 @@ pub fn Wrap(comptime bindings: anytype) type {
uniform_buffer = UNIFORM_BUFFER,
};

pub const Access = enum(Enum) {
//--------------------------------------------------------------------------------------
// OpenGL 1.5 (Core Profile)
//--------------------------------------------------------------------------------------
read_only = READ_ONLY,
write_only = WRITE_ONLY,
read_write = READ_WRITE,
};

pub const BufferParameter = enum(Enum) {
//--------------------------------------------------------------------------------------
// OpenGL 1.5 (Core Profile)
//--------------------------------------------------------------------------------------
buffer_size = BUFFER_SIZE,
buffer_usage = BUFFER_USAGE,
buffer_access = BUFFER_ACCESS,
buffer_mapped = BUFFER_MAPPED,
//--------------------------------------------------------------------------------------
// OpenGL 3.0 (Core Profile)
//--------------------------------------------------------------------------------------
buffer_access_flags = BUFFER_ACCESS_FLAGS,
buffer_map_offset = BUFFER_MAP_OFFSET,
buffer_map_length = BUFFER_MAP_LENGTH,
//--------------------------------------------------------------------------------------
// OpenGL 4.4 (Core Profile)
//--------------------------------------------------------------------------------------
buffer_immutable_storage = BUFFER_IMMUTABLE_STORAGE,
buffer_storage_flags = BUFFER_STORAGE_FLAGS,
};

pub const BufferPointerParameter = enum(Enum) {
//--------------------------------------------------------------------------------------
// OpenGL 1.5 (Core Profile)
//--------------------------------------------------------------------------------------
buffer_map_pointer = BUFFER_MAP_POINTER,
};

pub const IndexedBufferTarget = enum(Enum) {
//--------------------------------------------------------------------------------------
// OpenGL 3.0 (Core Profile)
Expand Down Expand Up @@ -2614,6 +2651,9 @@ pub fn Wrap(comptime bindings: anytype) type {
}

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

// pub var bufferData: *const fn (
// target: Enum,
Expand Down Expand Up @@ -2656,14 +2696,51 @@ pub fn Wrap(comptime bindings: anytype) type {
// size: Sizeiptr,
// data: ?*anyopaque,
// ) callconv(.c) void = undefined;
pub fn getBufferSubData(
target: BufferTarget,
offset: usize,
data: []u8,
) void {
bindings.getBufferSubData(
@intFromEnum(target),
@as(Intptr, @bitCast(offset)),
@as(Sizeiptr, @bitCast(data.len)),
data.ptr,
);
}

// pub var mapBuffer: *const fn (target: Enum, access: Enum) callconv(.c) ?*anyopaque = undefined;
pub fn mapBuffer(target: BufferTarget, access: Access) ?[*]u8 {
return @ptrCast(bindings.mapBuffer(@intFromEnum(target), @intFromEnum(access)));
}

// pub var unmapBuffer: *const fn (target: Enum) callconv(.c) Boolean = undefined;
pub fn unmapBuffer(target: BufferTarget) bool {
return bindings.unmapBuffer(@intFromEnum(target)) == TRUE;
}

// pub var getBufferParameteriv: *const fn (target: Enum, pname: Enum, params: [*c]Int) callconv(.c) void = undefined;
pub fn getBufferParameteriv(target: BufferTarget, pname: BufferParameter, params: []i32) void {
bindings.getBufferParameteriv(
@intFromEnum(target),
@intFromEnum(pname),
@as([*c]Int, @ptrCast(params.ptr)),
);
}

// pub var getBufferPointerv: *const fn (
// target: Enum,
// pname: Enum,
// params: [*c]?*anyopaque,
// ) callconv(.c) void = undefined;
pub fn getBufferPointerv(target: BufferTarget, pname: BufferPointerParameter, params: *?[*]u8) void {
bindings.getBufferPointerv(
@intFromEnum(target),
@intFromEnum(pname),
@as([*c]?*anyopaque, @ptrCast(params)),
);
}

//------------------------------------------------------------------------------------------
//
// OpenGL 2.0 (Core Profile)
Expand Down
Loading