From d32be19c8b67dddb4859b1e1265e83a51b37bbae Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sun, 6 Mar 2022 21:29:47 -0700 Subject: [PATCH] gpu: implement Surface.reference, Surface.release Signed-off-by: Stephen Gutekanst --- gpu/src/Surface.zig | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gpu/src/Surface.zig b/gpu/src/Surface.zig index e56b8eb8..e54e4520 100644 --- a/gpu/src/Surface.zig +++ b/gpu/src/Surface.zig @@ -1,5 +1,7 @@ //! A native WebGPU surface +const Surface = @This(); + // The type erased pointer to the Surface implementation ptr: *anyopaque, vtable: *const VTable, @@ -9,6 +11,14 @@ pub const VTable = struct { release: fn (ptr: *anyopaque) void, }; +pub inline fn reference(surface: Surface) void { + surface.vtable.reference(surface.ptr); +} + +pub inline fn release(surface: Surface) void { + surface.vtable.release(surface.ptr); +} + pub const DescriptorTag = enum { metal_layer, windows_hwnd, @@ -48,6 +58,9 @@ pub const Descriptor = union(DescriptorTag) { }; test "syntax" { + _ = VTable; + _ = reference; + _ = release; _ = DescriptorTag; _ = Descriptor; }