From 3d3fdcde0d1cec0f7b6e4e120f2c836e61a4298e Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Thu, 10 Mar 2022 00:15:23 -0700 Subject: [PATCH] gpu: implement BindGroup Signed-off-by: Stephen Gutekanst --- gpu/src/BindGroup.zig | 2 +- gpu/src/NativeInstance.zig | 22 ++++++++++++++++++++++ gpu/src/main.zig | 2 ++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/gpu/src/BindGroup.zig b/gpu/src/BindGroup.zig index 333b55bf..576798d2 100644 --- a/gpu/src/BindGroup.zig +++ b/gpu/src/BindGroup.zig @@ -24,4 +24,4 @@ test "syntax" { _ = VTable; _ = reference; _ = release; -} \ No newline at end of file +} diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index 5f1d6f89..36d1d53a 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -31,6 +31,7 @@ const QuerySet = @import("QuerySet.zig"); const PipelineLayout = @import("PipelineLayout.zig"); const ExternalTexture = @import("ExternalTexture.zig"); const BindGroup = @import("BindGroup.zig"); +const BindGroupLayout = @import("BindGroupLayout.zig"); const TextureUsage = @import("enums.zig").TextureUsage; const TextureFormat = @import("enums.zig").TextureFormat; @@ -728,6 +729,26 @@ const bind_group_vtable = BindGroup.VTable{ }).release, }; +fn wrapBindGroupLayout(layout: c.WGPUBindGroupLayout) BindGroupLayout { + return .{ + .ptr = layout.?, + .vtable = &bind_group_layout_vtable, + }; +} + +const bind_group_layout_vtable = BindGroupLayout.VTable{ + .reference = (struct { + pub fn reference(ptr: *anyopaque) void { + c.wgpuBindGroupLayoutReference(@ptrCast(c.WGPUBindGroupLayout, ptr)); + } + }).reference, + .release = (struct { + pub fn release(ptr: *anyopaque) void { + c.wgpuBindGroupLayoutRelease(@ptrCast(c.WGPUBindGroupLayout, ptr)); + } + }).release, +}; + test "syntax" { _ = wrap; _ = interface_vtable; @@ -752,4 +773,5 @@ test "syntax" { _ = wrapPipelineLayout; _ = wrapExternalTexture; _ = wrapBindGroup; + _ = wrapBindGroupLayout; } diff --git a/gpu/src/main.zig b/gpu/src/main.zig index efff941f..50a219f0 100644 --- a/gpu/src/main.zig +++ b/gpu/src/main.zig @@ -46,6 +46,7 @@ pub const QuerySet = @import("QuerySet.zig"); pub const PipelineLayout = @import("PipelineLayout.zig"); pub const ExternalTexture = @import("ExternalTexture.zig"); pub const BindGroup = @import("BindGroup.zig"); +pub const BindGroupLayout = @import("BindGroupLayout.zig"); pub const Feature = @import("enums.zig").Feature; pub const TextureUsage = @import("enums.zig").TextureUsage; @@ -116,6 +117,7 @@ test "syntax" { _ = PipelineLayout; _ = ExternalTexture; _ = BindGroup; + _ = BindGroupLayout; _ = Feature; }