diff --git a/gpu/TODO-webgpu.h b/gpu/TODO-webgpu.h index 3b7ebb1b..b206205a 100644 --- a/gpu/TODO-webgpu.h +++ b/gpu/TODO-webgpu.h @@ -1,13 +1,3 @@ -typedef struct WGPUBindGroupEntry { - WGPUChainedStruct const * nextInChain; - uint32_t binding; - WGPUBuffer buffer; // nullable - uint64_t offset; - uint64_t size; - WGPUSampler sampler; // nullable - WGPUTextureView textureView; // nullable -} WGPUBindGroupEntry; - typedef struct WGPUBlendComponent { WGPUBlendOperation operation; WGPUBlendFactor srcFactor; diff --git a/gpu/src/Buffer.zig b/gpu/src/Buffer.zig index 7af054fa..bcca5c95 100644 --- a/gpu/src/Buffer.zig +++ b/gpu/src/Buffer.zig @@ -3,7 +3,6 @@ const std = @import("std"); pub const Buffer = enum(usize) { _, - // TODO: verify there is a use case for nullable value of this type. pub const none: Buffer = @intToEnum(Buffer, 0); pub const BindingType = enum(u32) { diff --git a/gpu/src/Sampler.zig b/gpu/src/Sampler.zig index 915cd182..72b6c00e 100644 --- a/gpu/src/Sampler.zig +++ b/gpu/src/Sampler.zig @@ -1,7 +1,6 @@ pub const Sampler = enum(usize) { _, - // TODO: verify there is a use case for nullable value of this type. pub const none: Sampler = @intToEnum(Sampler, 0); pub const AddressMode = enum(u32) { diff --git a/gpu/src/bind_group.zig b/gpu/src/bind_group.zig index c77aa4ae..23910b2e 100644 --- a/gpu/src/bind_group.zig +++ b/gpu/src/bind_group.zig @@ -1,6 +1,21 @@ +const Buffer = @import("buffer.zig").Buffer; +const Sampler = @import("sampler.zig").Sampler; +const TextureView = @import("texture_view.zig").TextureView; +const ChainedStruct = @import("types.zig").ChainedStruct; + pub const BindGroup = enum(usize) { _, // TODO: verify there is a use case for nullable value of this type. pub const none: BindGroup = @intToEnum(BindGroup, 0); + + pub const Entry = extern struct { + next_in_chain: *const ChainedStruct, + binding: u32, + buffer: Buffer = Buffer.none, // nullable + offset: u64, + size: u64, + sampler: Sampler = Sampler.none, // nullable + texture_view: TextureView = TextureView.none, // nullable + }; }; diff --git a/gpu/src/texture_view.zig b/gpu/src/texture_view.zig index cb25202f..9cb3fdb5 100644 --- a/gpu/src/texture_view.zig +++ b/gpu/src/texture_view.zig @@ -1,7 +1,6 @@ pub const TextureView = enum(usize) { _, - // TODO: verify there is a use case for nullable value of this type. pub const none: TextureView = @intToEnum(TextureView, 0); pub const Dimension = enum(u32) {