mach/gpu/src/bind_group_layout.zig
Stephen Gutekanst 5b66e3fbe0 gpu: add BindGroupLayout.Descriptor
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-08-12 00:43:43 -07:00

30 lines
1 KiB
Zig

const ChainedStruct = @import("types.zig").ChainedStruct;
const ShaderStageFlags = @import("types.zig").ShaderStageFlags;
const Buffer = @import("buffer.zig").Buffer;
const Sampler = @import("sampler.zig").Sampler;
const Texture = @import("texture.zig").Texture;
const StorageTextureBindingLayout = @import("types.zig").StorageTextureBindingLayout;
pub const BindGroupLayout = enum(usize) {
_,
// TODO: verify there is a use case for nullable value of this type.
pub const none: BindGroupLayout = @intToEnum(BindGroupLayout, 0);
pub const Entry = extern struct {
next_in_chain: *const ChainedStruct,
binding: u32,
visibility: ShaderStageFlags,
buffer: Buffer.BindingLayout,
sampler: Sampler.BindingLayout,
texture: Texture.BindingLayout,
storage_texture: StorageTextureBindingLayout,
};
pub const Descriptor = extern struct {
next_in_chain: *const ChainedStruct,
label: ?[*:0]const u8 = null,
entry_count: u32,
entries: [*]const Entry,
};
};