gpu: internalize BindGroupLayout types
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
2ba4b9ff95
commit
3f4ebd68c2
3 changed files with 23 additions and 24 deletions
|
|
@ -10,6 +10,24 @@ const StorageTextureBindingLayout = @import("types.zig").StorageTextureBindingLa
|
||||||
const Impl = @import("interface.zig").Impl;
|
const Impl = @import("interface.zig").Impl;
|
||||||
|
|
||||||
pub const BindGroupLayout = opaque {
|
pub const BindGroupLayout = opaque {
|
||||||
|
pub const Entry = extern struct {
|
||||||
|
next_in_chain: ?*const ChainedStruct = null,
|
||||||
|
binding: u32,
|
||||||
|
visibility: ShaderStageFlags,
|
||||||
|
buffer: BufferBindingLayout,
|
||||||
|
sampler: SamplerBindingLayout,
|
||||||
|
texture: TextureBindingLayout,
|
||||||
|
storage_texture: StorageTextureBindingLayout,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub const Descriptor = extern struct {
|
||||||
|
next_in_chain: ?*const ChainedStruct = null,
|
||||||
|
label: ?[*:0]const u8 = null,
|
||||||
|
entry_count: u32,
|
||||||
|
// TODO: file a bug on Dawn, this is not marked as nullable but in fact is.
|
||||||
|
entries: ?[*]const Entry,
|
||||||
|
};
|
||||||
|
|
||||||
pub inline fn setLabel(bind_group_layout: *BindGroupLayout, label: [*:0]const u8) void {
|
pub inline fn setLabel(bind_group_layout: *BindGroupLayout, label: [*:0]const u8) void {
|
||||||
Impl.bindGroupLayoutSetLabel(bind_group_layout, label);
|
Impl.bindGroupLayoutSetLabel(bind_group_layout, label);
|
||||||
}
|
}
|
||||||
|
|
@ -22,21 +40,3 @@ pub const BindGroupLayout = opaque {
|
||||||
Impl.bindGroupLayoutRelease(bind_group_layout);
|
Impl.bindGroupLayoutRelease(bind_group_layout);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
pub const BindGroupLayoutEntry = extern struct {
|
|
||||||
next_in_chain: ?*const ChainedStruct = null,
|
|
||||||
binding: u32,
|
|
||||||
visibility: ShaderStageFlags,
|
|
||||||
buffer: BufferBindingLayout,
|
|
||||||
sampler: SamplerBindingLayout,
|
|
||||||
texture: TextureBindingLayout,
|
|
||||||
storage_texture: StorageTextureBindingLayout,
|
|
||||||
};
|
|
||||||
|
|
||||||
pub const BindGroupLayoutDescriptor = extern struct {
|
|
||||||
next_in_chain: ?*const ChainedStruct = null,
|
|
||||||
label: ?[*:0]const u8 = null,
|
|
||||||
entry_count: u32,
|
|
||||||
// TODO: file a bug on Dawn, this is not marked as nullable but in fact is.
|
|
||||||
entries: ?[*]const BindGroupLayoutEntry,
|
|
||||||
};
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ const QueueDescriptor = @import("queue.zig").QueueDescriptor;
|
||||||
const BindGroup = @import("bind_group.zig").BindGroup;
|
const BindGroup = @import("bind_group.zig").BindGroup;
|
||||||
const BindGroupDescriptor = @import("bind_group.zig").BindGroupDescriptor;
|
const BindGroupDescriptor = @import("bind_group.zig").BindGroupDescriptor;
|
||||||
const BindGroupLayout = @import("bind_group_layout.zig").BindGroupLayout;
|
const BindGroupLayout = @import("bind_group_layout.zig").BindGroupLayout;
|
||||||
const BindGroupLayoutDescriptor = @import("bind_group_layout.zig").BindGroupLayoutDescriptor;
|
|
||||||
const Buffer = @import("buffer.zig").Buffer;
|
const Buffer = @import("buffer.zig").Buffer;
|
||||||
const BufferDescriptor = @import("buffer.zig").BufferDescriptor;
|
const BufferDescriptor = @import("buffer.zig").BufferDescriptor;
|
||||||
const CommandEncoder = @import("command_encoder.zig").CommandEncoder;
|
const CommandEncoder = @import("command_encoder.zig").CommandEncoder;
|
||||||
|
|
@ -46,7 +45,7 @@ pub const Device = *opaque {
|
||||||
return Impl.deviceCreateBindGroup(device, descriptor);
|
return Impl.deviceCreateBindGroup(device, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub inline fn createBindGroupLayout(device: Device, descriptor: *const BindGroupLayoutDescriptor) *BindGroupLayout {
|
pub inline fn createBindGroupLayout(device: Device, descriptor: *const BindGroupLayout.Descriptor) *BindGroupLayout {
|
||||||
return Impl.deviceCreateBindGroupLayout(device, descriptor);
|
return Impl.deviceCreateBindGroupLayout(device, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@ pub fn Interface(comptime T: type) type {
|
||||||
assertDecl(T, "computePipelineReference", fn (compute_pipeline: gpu.ComputePipeline) callconv(.Inline) void);
|
assertDecl(T, "computePipelineReference", fn (compute_pipeline: gpu.ComputePipeline) callconv(.Inline) void);
|
||||||
assertDecl(T, "computePipelineRelease", fn (compute_pipeline: gpu.ComputePipeline) callconv(.Inline) void);
|
assertDecl(T, "computePipelineRelease", fn (compute_pipeline: gpu.ComputePipeline) callconv(.Inline) void);
|
||||||
assertDecl(T, "deviceCreateBindGroup", fn (device: gpu.Device, descriptor: *const gpu.BindGroupDescriptor) callconv(.Inline) gpu.BindGroup);
|
assertDecl(T, "deviceCreateBindGroup", fn (device: gpu.Device, descriptor: *const gpu.BindGroupDescriptor) callconv(.Inline) gpu.BindGroup);
|
||||||
assertDecl(T, "deviceCreateBindGroupLayout", fn (device: gpu.Device, descriptor: *const gpu.BindGroupLayoutDescriptor) callconv(.Inline) *gpu.BindGroupLayout);
|
assertDecl(T, "deviceCreateBindGroupLayout", fn (device: gpu.Device, descriptor: *const gpu.BindGroupLayout.Descriptor) callconv(.Inline) *gpu.BindGroupLayout);
|
||||||
assertDecl(T, "deviceCreateBuffer", fn (device: gpu.Device, descriptor: *const gpu.BufferDescriptor) callconv(.Inline) gpu.Buffer);
|
assertDecl(T, "deviceCreateBuffer", fn (device: gpu.Device, descriptor: *const gpu.BufferDescriptor) callconv(.Inline) gpu.Buffer);
|
||||||
assertDecl(T, "deviceCreateCommandEncoder", fn (device: gpu.Device, descriptor: ?*const gpu.CommandEncoderDescriptor) callconv(.Inline) gpu.CommandEncoder);
|
assertDecl(T, "deviceCreateCommandEncoder", fn (device: gpu.Device, descriptor: ?*const gpu.CommandEncoderDescriptor) callconv(.Inline) gpu.CommandEncoder);
|
||||||
assertDecl(T, "deviceCreateComputePipeline", fn (device: gpu.Device, descriptor: *const gpu.ComputePipelineDescriptor) callconv(.Inline) gpu.ComputePipeline);
|
assertDecl(T, "deviceCreateComputePipeline", fn (device: gpu.Device, descriptor: *const gpu.ComputePipelineDescriptor) callconv(.Inline) gpu.ComputePipeline);
|
||||||
|
|
@ -555,8 +555,8 @@ pub fn Export(comptime T: type) type {
|
||||||
return T.deviceCreateBindGroup(device, descriptor);
|
return T.deviceCreateBindGroup(device, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor);
|
// WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayout.Descriptor const * descriptor);
|
||||||
export fn wgpuDeviceCreateBindGroupLayout(device: gpu.Device, descriptor: *const gpu.BindGroupLayoutDescriptor) *gpu.BindGroupLayout {
|
export fn wgpuDeviceCreateBindGroupLayout(device: gpu.Device, descriptor: *const gpu.BindGroupLayout.Descriptor) *gpu.BindGroupLayout {
|
||||||
return T.deviceCreateBindGroupLayout(device, descriptor);
|
return T.deviceCreateBindGroupLayout(device, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1625,7 +1625,7 @@ pub const StubInterface = Interface(struct {
|
||||||
unreachable;
|
unreachable;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub inline fn deviceCreateBindGroupLayout(device: gpu.Device, descriptor: *const gpu.BindGroupLayoutDescriptor) *gpu.BindGroupLayout {
|
pub inline fn deviceCreateBindGroupLayout(device: gpu.Device, descriptor: *const gpu.BindGroupLayout.Descriptor) *gpu.BindGroupLayout {
|
||||||
_ = device;
|
_ = device;
|
||||||
_ = descriptor;
|
_ = descriptor;
|
||||||
unreachable;
|
unreachable;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue