gpu: Added helpers to BindGroup.Entry; make dynamic_offset a const slice (#215)
Helps hexops/mach#
This commit is contained in:
parent
8c8534e609
commit
f2ce208aa1
3 changed files with 33 additions and 5 deletions
|
|
@ -35,6 +35,34 @@ pub const Entry = struct {
|
|||
size: u64,
|
||||
sampler: ?Sampler = null,
|
||||
texture_view: ?TextureView = null,
|
||||
|
||||
/// Helper to create a buffer BindGroup.Entry.
|
||||
pub fn buffer(binding: u32, buf: Buffer, offset: u64, size: u64) Entry {
|
||||
return .{
|
||||
.binding = binding,
|
||||
.buffer = buf,
|
||||
.offset = offset,
|
||||
.size = size,
|
||||
};
|
||||
}
|
||||
|
||||
/// Helper to create a sampler BindGroup.Entry.
|
||||
pub fn sampler(binding: u32, sam: Sampler) Entry {
|
||||
return .{
|
||||
.binding = binding,
|
||||
.sampler = sam,
|
||||
.size = 0,
|
||||
};
|
||||
}
|
||||
|
||||
/// Helper to create a texture view BindGroup.Entry.
|
||||
pub fn textureView(binding: u32, texview: TextureView) Entry {
|
||||
return .{
|
||||
.binding = binding,
|
||||
.texture_view = texview,
|
||||
.size = 0,
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
pub const Descriptor = struct {
|
||||
|
|
|
|||
|
|
@ -1298,7 +1298,7 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{
|
|||
ptr: *anyopaque,
|
||||
group_index: u32,
|
||||
group: BindGroup,
|
||||
dynamic_offsets: []u32,
|
||||
dynamic_offsets: []const u32,
|
||||
) void {
|
||||
c.wgpuRenderPassEncoderSetBindGroup(
|
||||
@ptrCast(c.WGPURenderPassEncoder, ptr),
|
||||
|
|
@ -1495,7 +1495,7 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{
|
|||
ptr: *anyopaque,
|
||||
group_index: u32,
|
||||
group: BindGroup,
|
||||
dynamic_offsets: []u32,
|
||||
dynamic_offsets: []const u32,
|
||||
) void {
|
||||
c.wgpuRenderBundleEncoderSetBindGroup(
|
||||
@ptrCast(c.WGPURenderBundleEncoder, ptr),
|
||||
|
|
@ -2157,7 +2157,7 @@ const compute_pass_encoder_vtable = ComputePassEncoder.VTable{
|
|||
ptr: *anyopaque,
|
||||
group_index: u32,
|
||||
group: BindGroup,
|
||||
dynamic_offsets: []u32,
|
||||
dynamic_offsets: []const u32,
|
||||
) void {
|
||||
c.wgpuComputePassEncoderSetBindGroup(
|
||||
@ptrCast(c.WGPUComputePassEncoder, ptr),
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ pub const VTable = struct {
|
|||
insertDebugMarker: fn (ptr: *anyopaque, marker_label: [*:0]const u8) void,
|
||||
popDebugGroup: fn (ptr: *anyopaque) void,
|
||||
pushDebugGroup: fn (ptr: *anyopaque, group_label: [*:0]const u8) void,
|
||||
setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: []u32) void,
|
||||
setBindGroup: fn (ptr: *anyopaque, group_index: u32, group: BindGroup, dynamic_offsets: []const u32) void,
|
||||
setBlendConstant: fn (ptr: *anyopaque, color: *const Color) void,
|
||||
setIndexBuffer: fn (ptr: *anyopaque, buffer: Buffer, format: IndexFormat, offset: u64, size: u64) void,
|
||||
setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void,
|
||||
|
|
@ -118,7 +118,7 @@ pub inline fn setBindGroup(
|
|||
pass: RenderPassEncoder,
|
||||
group_index: u32,
|
||||
group: BindGroup,
|
||||
dynamic_offsets: []u32,
|
||||
dynamic_offsets: []const u32,
|
||||
) void {
|
||||
pass.vtable.setBindGroup(pass.ptr, group_index, group, dynamic_offsets);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue