diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index ed649404..4c99c80a 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -571,6 +571,11 @@ const texture_vtable = Texture.VTable{ c.wgpuTextureSetLabel(@ptrCast(c.WGPUTexture, ptr), label); } }).setLabel, + .destroy = (struct { + pub fn destroy(ptr: *anyopaque) void { + c.wgpuTextureDestroy(@ptrCast(c.WGPUTexture, ptr)); + } + }).destroy, }; fn wrapSampler(sampler: c.WGPUSampler) Sampler { diff --git a/gpu/src/Texture.zig b/gpu/src/Texture.zig index 2caee81a..743caa5d 100644 --- a/gpu/src/Texture.zig +++ b/gpu/src/Texture.zig @@ -10,7 +10,7 @@ pub const VTable = struct { release: fn (ptr: *anyopaque) void, // TODO: // WGPU_EXPORT WGPUTextureView wgpuTextureCreateView(WGPUTexture texture, WGPUTextureViewDescriptor const * descriptor); - // WGPU_EXPORT void wgpuTextureDestroy(WGPUTexture texture); + destroy: fn (ptr: *anyopaque) void, setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void, }; @@ -26,8 +26,13 @@ pub inline fn setLabel(texture: Texture, label: [:0]const u8) void { texture.vtable.setLabel(texture.ptr, label); } +pub inline fn destroy(texture: Texture) void { + texture.vtable.destroy(texture.ptr); +} + test "syntax" { _ = VTable; _ = reference; _ = release; + _ = destroy; }