diff --git a/gpu/src/Buffer.zig b/gpu/src/Buffer.zig index adf8ac7e..e9460e11 100644 --- a/gpu/src/Buffer.zig +++ b/gpu/src/Buffer.zig @@ -8,8 +8,8 @@ vtable: *const VTable, pub const VTable = struct { reference: fn (ptr: *anyopaque) void, release: fn (ptr: *anyopaque) void, + destroy: fn (ptr: *anyopaque) void, // TODO: - // WGPU_EXPORT void wgpuBufferDestroy(WGPUBuffer buffer); // WGPU_EXPORT void const * wgpuBufferGetConstMappedRange(WGPUBuffer buffer, size_t offset, size_t size); // WGPU_EXPORT void * wgpuBufferGetMappedRange(WGPUBuffer buffer, size_t offset, size_t size); // WGPU_EXPORT void wgpuBufferMapAsync(WGPUBuffer buffer, WGPUMapModeFlags mode, size_t offset, size_t size, WGPUBufferMapCallback callback, void * userdata); @@ -25,6 +25,10 @@ pub inline fn release(buf: Buffer) void { buf.vtable.release(buf.ptr); } +pub inline fn destroy(buf: Buffer) void { + buf.vtable.destroy(buf.ptr); +} + pub inline fn setLabel(buf: Buffer, label: [:0]const u8) void { buf.vtable.setLabel(buf.ptr, label); } @@ -33,5 +37,6 @@ test "syntax" { _ = VTable; _ = reference; _ = release; + _ = destroy; _ = setLabel; } diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index 0a74dfbf..a2e9240b 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -836,6 +836,11 @@ const buffer_vtable = Buffer.VTable{ c.wgpuBufferSetLabel(@ptrCast(c.WGPUBuffer, ptr), label); } }).setLabel, + .destroy = (struct { + pub fn destroy(ptr: *anyopaque) void { + c.wgpuBufferDestroy(@ptrCast(c.WGPUDestroy, ptr)); + } + }).destroy, }; fn wrapCommandBuffer(buffer: c.WGPUCommandBuffer) CommandBuffer {