diff options
Diffstat (limited to 'src/gl.zig')
| -rw-r--r-- | src/gl.zig | 248 |
1 files changed, 124 insertions, 124 deletions
@@ -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)); } |
