aboutsummaryrefslogtreecommitdiffstats
path: root/src/gl.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/gl.zig')
-rw-r--r--src/gl.zig248
1 files changed, 124 insertions, 124 deletions
diff --git a/src/gl.zig b/src/gl.zig
index 26ce981..4f86f03 100644
--- a/src/gl.zig
+++ b/src/gl.zig
@@ -17,12 +17,12 @@ pub const Texture = struct {
TEXTURE_1D = c.GL_TEXTURE_1D,
TEXTURE_2D = c.GL_TEXTURE_2D,
TEXTURE_3D = c.GL_TEXTURE_3D,
- TEXTURE_CUBEMAP = c.GL_TEXTURE_CUBE_MAP,
+ TEXTURE_CUBE_MAP = c.GL_TEXTURE_CUBE_MAP,
TEXTURE_RECTANGLE = c.GL_TEXTURE_RECTANGLE,
TEXTURE_2D_MULTISAMPLE = c.GL_TEXTURE_2D_MULTISAMPLE,
TEXTURE_1D_ARRAY = c.GL_TEXTURE_1D_ARRAY,
TEXTURE_2D_ARRAY = c.GL_TEXTURE_2D_ARRAY,
- TEXTURE_CUBEMAP_ARRAY = c.GL_TEXTURE_CUBE_MAP_ARRAY,
+ TEXTURE_CUBE_MAP_ARRAY = c.GL_TEXTURE_CUBE_MAP_ARRAY,
TEXTURE_BUFFER = c.GL_TEXTURE_BUFFER,
TEXTURE_2D_MULTISAMPLE_ARRAY = c.GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
};
@@ -67,10 +67,10 @@ pub const Texture = struct {
}
pub fn destroy(self: *const Texture) void {
+ c.glDeleteTextures(1, &self.id);
if (self.image_unit) |image_unit| {
image_unit_map[image_unit] = false;
}
- c.glDeleteTextures(1, &self.id);
}
pub fn allocate(
@@ -301,88 +301,88 @@ const UniformValue = union(UniformType) {
DOUBLE_MAT3x4: [3 * 4]f64,
DOUBLE_MAT4x2: [4 * 2]f64,
DOUBLE_MAT4x3: [4 * 3]f64,
- SAMPLER_1D: ?Texture,
- SAMPLER_2D: ?Texture,
- SAMPLER_3D: ?Texture,
- SAMPLER_CUBE: ?Texture,
- SAMPLER_1D_SHADOW: ?Texture,
- SAMPLER_2D_SHADOW: ?Texture,
- SAMPLER_1D_ARRAY: ?Texture,
- SAMPLER_2D_ARRAY: ?Texture,
- SAMPLER_1D_ARRAY_SHADOW: ?Texture,
- SAMPLER_2D_ARRAY_SHADOW: ?Texture,
- SAMPLER_2D_MULTISAMPLE: ?Texture,
- SAMPLER_2D_MULTISAMPLE_ARRAY: ?Texture,
- SAMPLER_CUBE_SHADOW: ?Texture,
- SAMPLER_BUFFER: ?Texture,
- SAMPLER_2D_RECT: ?Texture,
- SAMPLER_2D_RECT_SHADOW: ?Texture,
- INT_SAMPLER_1D: ?Texture,
- INT_SAMPLER_2D: ?Texture,
- INT_SAMPLER_3D: ?Texture,
- INT_SAMPLER_CUBE: ?Texture,
- INT_SAMPLER_1D_ARRAY: ?Texture,
- INT_SAMPLER_2D_ARRAY: ?Texture,
- INT_SAMPLER_2D_MULTISAMPLE: ?Texture,
- INT_SAMPLER_2D_MULTISAMPLE_ARRAY: ?Texture,
- INT_SAMPLER_BUFFER: ?Texture,
- INT_SAMPLER_2D_RECT: ?Texture,
- UNSIGNED_INT_SAMPLER_1D: ?Texture,
- UNSIGNED_INT_SAMPLER_2D: ?Texture,
- UNSIGNED_INT_SAMPLER_3D: ?Texture,
- UNSIGNED_INT_SAMPLER_CUBE: ?Texture,
- UNSIGNED_INT_SAMPLER_1D_ARRAY: ?Texture,
- UNSIGNED_INT_SAMPLER_2D_ARRAY: ?Texture,
- UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: ?Texture,
- UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: ?Texture,
- UNSIGNED_INT_SAMPLER_BUFFER: ?Texture,
- UNSIGNED_INT_SAMPLER_2D_RECT: ?Texture,
-
- pub fn deinit(self: *const UniformValue) void {
- switch (self.*) {
- .SAMPLER_1D,
- .SAMPLER_2D,
- .SAMPLER_3D,
- .SAMPLER_CUBE,
- .SAMPLER_1D_SHADOW,
- .SAMPLER_2D_SHADOW,
- .SAMPLER_1D_ARRAY,
- .SAMPLER_2D_ARRAY,
- .SAMPLER_1D_ARRAY_SHADOW,
- .SAMPLER_2D_ARRAY_SHADOW,
- .SAMPLER_2D_MULTISAMPLE,
- .SAMPLER_2D_MULTISAMPLE_ARRAY,
- .SAMPLER_CUBE_SHADOW,
- .SAMPLER_BUFFER,
- .SAMPLER_2D_RECT,
- .SAMPLER_2D_RECT_SHADOW,
- .INT_SAMPLER_1D,
- .INT_SAMPLER_2D,
- .INT_SAMPLER_3D,
- .INT_SAMPLER_CUBE,
- .INT_SAMPLER_1D_ARRAY,
- .INT_SAMPLER_2D_ARRAY,
- .INT_SAMPLER_2D_MULTISAMPLE,
- .INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
- .INT_SAMPLER_BUFFER,
- .INT_SAMPLER_2D_RECT,
- .UNSIGNED_INT_SAMPLER_1D,
- .UNSIGNED_INT_SAMPLER_2D,
- .UNSIGNED_INT_SAMPLER_3D,
- .UNSIGNED_INT_SAMPLER_CUBE,
- .UNSIGNED_INT_SAMPLER_1D_ARRAY,
- .UNSIGNED_INT_SAMPLER_2D_ARRAY,
- .UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
- .UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
- .UNSIGNED_INT_SAMPLER_BUFFER,
- .UNSIGNED_INT_SAMPLER_2D_RECT,
- => |value| {
- // if (value) |texture| texture.destroy();
- _ = value;
- },
- else => {},
- }
- }
+ SAMPLER_1D: ?*Texture,
+ SAMPLER_2D: ?*Texture,
+ SAMPLER_3D: ?*Texture,
+ SAMPLER_CUBE: ?*Texture,
+ SAMPLER_1D_SHADOW: ?*Texture,
+ SAMPLER_2D_SHADOW: ?*Texture,
+ SAMPLER_1D_ARRAY: ?*Texture,
+ SAMPLER_2D_ARRAY: ?*Texture,
+ SAMPLER_1D_ARRAY_SHADOW: ?*Texture,
+ SAMPLER_2D_ARRAY_SHADOW: ?*Texture,
+ SAMPLER_2D_MULTISAMPLE: ?*Texture,
+ SAMPLER_2D_MULTISAMPLE_ARRAY: ?*Texture,
+ SAMPLER_CUBE_SHADOW: ?*Texture,
+ SAMPLER_BUFFER: ?*Texture,
+ SAMPLER_2D_RECT: ?*Texture,
+ SAMPLER_2D_RECT_SHADOW: ?*Texture,
+ INT_SAMPLER_1D: ?*Texture,
+ INT_SAMPLER_2D: ?*Texture,
+ INT_SAMPLER_3D: ?*Texture,
+ INT_SAMPLER_CUBE: ?*Texture,
+ INT_SAMPLER_1D_ARRAY: ?*Texture,
+ INT_SAMPLER_2D_ARRAY: ?*Texture,
+ INT_SAMPLER_2D_MULTISAMPLE: ?*Texture,
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY: ?*Texture,
+ INT_SAMPLER_BUFFER: ?*Texture,
+ INT_SAMPLER_2D_RECT: ?*Texture,
+ UNSIGNED_INT_SAMPLER_1D: ?*Texture,
+ UNSIGNED_INT_SAMPLER_2D: ?*Texture,
+ UNSIGNED_INT_SAMPLER_3D: ?*Texture,
+ UNSIGNED_INT_SAMPLER_CUBE: ?*Texture,
+ UNSIGNED_INT_SAMPLER_1D_ARRAY: ?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_ARRAY: ?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: ?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: ?*Texture,
+ UNSIGNED_INT_SAMPLER_BUFFER: ?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_RECT: ?*Texture,
+
+ // pub fn deinit(self: *const UniformValue) void {
+ // switch (self.*) {
+ // .SAMPLER_1D,
+ // .SAMPLER_2D,
+ // .SAMPLER_3D,
+ // .SAMPLER_CUBE,
+ // .SAMPLER_1D_SHADOW,
+ // .SAMPLER_2D_SHADOW,
+ // .SAMPLER_1D_ARRAY,
+ // .SAMPLER_2D_ARRAY,
+ // .SAMPLER_1D_ARRAY_SHADOW,
+ // .SAMPLER_2D_ARRAY_SHADOW,
+ // .SAMPLER_2D_MULTISAMPLE,
+ // .SAMPLER_2D_MULTISAMPLE_ARRAY,
+ // .SAMPLER_CUBE_SHADOW,
+ // .SAMPLER_BUFFER,
+ // .SAMPLER_2D_RECT,
+ // .SAMPLER_2D_RECT_SHADOW,
+ // .INT_SAMPLER_1D,
+ // .INT_SAMPLER_2D,
+ // .INT_SAMPLER_3D,
+ // .INT_SAMPLER_CUBE,
+ // .INT_SAMPLER_1D_ARRAY,
+ // .INT_SAMPLER_2D_ARRAY,
+ // .INT_SAMPLER_2D_MULTISAMPLE,
+ // .INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+ // .INT_SAMPLER_BUFFER,
+ // .INT_SAMPLER_2D_RECT,
+ // .UNSIGNED_INT_SAMPLER_1D,
+ // .UNSIGNED_INT_SAMPLER_2D,
+ // .UNSIGNED_INT_SAMPLER_3D,
+ // .UNSIGNED_INT_SAMPLER_CUBE,
+ // .UNSIGNED_INT_SAMPLER_1D_ARRAY,
+ // .UNSIGNED_INT_SAMPLER_2D_ARRAY,
+ // .UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE,
+ // .UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
+ // .UNSIGNED_INT_SAMPLER_BUFFER,
+ // .UNSIGNED_INT_SAMPLER_2D_RECT,
+ // => |value| {
+ // // if (value) |texture| texture.destroy();
+ // _ = value;
+ // },
+ // else => {},
+ // }
+ // }
pub fn getPointer(self: *UniformValue) UniformPointer {
return switch (self.*) {
@@ -430,42 +430,42 @@ const UniformPointer = union(UniformType) {
DOUBLE_MAT3x4: *[3 * 4]f64,
DOUBLE_MAT4x2: *[4 * 2]f64,
DOUBLE_MAT4x3: *[4 * 3]f64,
- SAMPLER_1D: *?Texture,
- SAMPLER_2D: *?Texture,
- SAMPLER_3D: *?Texture,
- SAMPLER_CUBE: *?Texture,
- SAMPLER_1D_SHADOW: *?Texture,
- SAMPLER_2D_SHADOW: *?Texture,
- SAMPLER_1D_ARRAY: *?Texture,
- SAMPLER_2D_ARRAY: *?Texture,
- SAMPLER_1D_ARRAY_SHADOW: *?Texture,
- SAMPLER_2D_ARRAY_SHADOW: *?Texture,
- SAMPLER_2D_MULTISAMPLE: *?Texture,
- SAMPLER_2D_MULTISAMPLE_ARRAY: *?Texture,
- SAMPLER_CUBE_SHADOW: *?Texture,
- SAMPLER_BUFFER: *?Texture,
- SAMPLER_2D_RECT: *?Texture,
- SAMPLER_2D_RECT_SHADOW: *?Texture,
- INT_SAMPLER_1D: *?Texture,
- INT_SAMPLER_2D: *?Texture,
- INT_SAMPLER_3D: *?Texture,
- INT_SAMPLER_CUBE: *?Texture,
- INT_SAMPLER_1D_ARRAY: *?Texture,
- INT_SAMPLER_2D_ARRAY: *?Texture,
- INT_SAMPLER_2D_MULTISAMPLE: *?Texture,
- INT_SAMPLER_2D_MULTISAMPLE_ARRAY: *?Texture,
- INT_SAMPLER_BUFFER: *?Texture,
- INT_SAMPLER_2D_RECT: *?Texture,
- UNSIGNED_INT_SAMPLER_1D: *?Texture,
- UNSIGNED_INT_SAMPLER_2D: *?Texture,
- UNSIGNED_INT_SAMPLER_3D: *?Texture,
- UNSIGNED_INT_SAMPLER_CUBE: *?Texture,
- UNSIGNED_INT_SAMPLER_1D_ARRAY: *?Texture,
- UNSIGNED_INT_SAMPLER_2D_ARRAY: *?Texture,
- UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: *?Texture,
- UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: *?Texture,
- UNSIGNED_INT_SAMPLER_BUFFER: *?Texture,
- UNSIGNED_INT_SAMPLER_2D_RECT: *?Texture,
+ SAMPLER_1D: *?*Texture,
+ SAMPLER_2D: *?*Texture,
+ SAMPLER_3D: *?*Texture,
+ SAMPLER_CUBE: *?*Texture,
+ SAMPLER_1D_SHADOW: *?*Texture,
+ SAMPLER_2D_SHADOW: *?*Texture,
+ SAMPLER_1D_ARRAY: *?*Texture,
+ SAMPLER_2D_ARRAY: *?*Texture,
+ SAMPLER_1D_ARRAY_SHADOW: *?*Texture,
+ SAMPLER_2D_ARRAY_SHADOW: *?*Texture,
+ SAMPLER_2D_MULTISAMPLE: *?*Texture,
+ SAMPLER_2D_MULTISAMPLE_ARRAY: *?*Texture,
+ SAMPLER_CUBE_SHADOW: *?*Texture,
+ SAMPLER_BUFFER: *?*Texture,
+ SAMPLER_2D_RECT: *?*Texture,
+ SAMPLER_2D_RECT_SHADOW: *?*Texture,
+ INT_SAMPLER_1D: *?*Texture,
+ INT_SAMPLER_2D: *?*Texture,
+ INT_SAMPLER_3D: *?*Texture,
+ INT_SAMPLER_CUBE: *?*Texture,
+ INT_SAMPLER_1D_ARRAY: *?*Texture,
+ INT_SAMPLER_2D_ARRAY: *?*Texture,
+ INT_SAMPLER_2D_MULTISAMPLE: *?*Texture,
+ INT_SAMPLER_2D_MULTISAMPLE_ARRAY: *?*Texture,
+ INT_SAMPLER_BUFFER: *?*Texture,
+ INT_SAMPLER_2D_RECT: *?*Texture,
+ UNSIGNED_INT_SAMPLER_1D: *?*Texture,
+ UNSIGNED_INT_SAMPLER_2D: *?*Texture,
+ UNSIGNED_INT_SAMPLER_3D: *?*Texture,
+ UNSIGNED_INT_SAMPLER_CUBE: *?*Texture,
+ UNSIGNED_INT_SAMPLER_1D_ARRAY: *?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_ARRAY: *?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: *?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY: *?*Texture,
+ UNSIGNED_INT_SAMPLER_BUFFER: *?*Texture,
+ UNSIGNED_INT_SAMPLER_2D_RECT: *?*Texture,
pub fn index(self: *const UniformPointer, i: u8) !UniformPointer {
const length: u8 = switch (self.*) {
@@ -524,7 +524,7 @@ pub const CachedUniform = struct {
pub fn deinit(self: *CachedUniform, allocator: std.mem.Allocator) void {
if (self.value) |value| {
- value.deinit();
+ // value.deinit();
allocator.destroy(value);
self.value = null;
}
@@ -622,8 +622,8 @@ pub const CachedUniform = struct {
.UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
.UNSIGNED_INT_SAMPLER_BUFFER,
.UNSIGNED_INT_SAMPLER_2D_RECT,
- => |*value| {
- if (value.*) |*texture| {
+ => |value| {
+ if (value) |texture| {
const index = texture.bind();
c.glProgramUniform1i(program, location, @intCast(index));
}