gpu: implement RenderBundleEncoder.setBindGroup
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
2c44f5c45e
commit
d11e912e36
2 changed files with 28 additions and 27 deletions
|
|
@ -1188,6 +1188,22 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{
|
||||||
c.wgpuRenderBundleEncoderPushDebugGroup(@ptrCast(c.WGPURenderBundleEncoder, ptr), group_label);
|
c.wgpuRenderBundleEncoderPushDebugGroup(@ptrCast(c.WGPURenderBundleEncoder, ptr), group_label);
|
||||||
}
|
}
|
||||||
}).pushDebugGroup,
|
}).pushDebugGroup,
|
||||||
|
.setBindGroup = (struct {
|
||||||
|
pub fn setBindGroup(
|
||||||
|
ptr: *anyopaque,
|
||||||
|
group_index: u32,
|
||||||
|
group: BindGroup,
|
||||||
|
dynamic_offsets: []u32,
|
||||||
|
) void {
|
||||||
|
c.wgpuRenderBundleEncoderSetBindGroup(
|
||||||
|
@ptrCast(c.WGPURenderBundleEncoder, ptr),
|
||||||
|
group_index,
|
||||||
|
@ptrCast(c.WGPUBindGroup, group.ptr),
|
||||||
|
@intCast(u32, dynamic_offsets.len),
|
||||||
|
&dynamic_offsets[0],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}).setBindGroup,
|
||||||
// .beginOcclusionQuery = (struct {
|
// .beginOcclusionQuery = (struct {
|
||||||
// pub fn beginOcclusionQuery(ptr: *anyopaque, query_index: u32) void {
|
// pub fn beginOcclusionQuery(ptr: *anyopaque, query_index: u32) void {
|
||||||
// c.wgpuRenderBundleEncoderBeginOcclusionQuery(@ptrCast(c.WGPURenderBundleEncoder, ptr), query_index);
|
// c.wgpuRenderBundleEncoderBeginOcclusionQuery(@ptrCast(c.WGPURenderBundleEncoder, ptr), query_index);
|
||||||
|
|
@ -1222,22 +1238,6 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{
|
||||||
// );
|
// );
|
||||||
// }
|
// }
|
||||||
// }).executeBundles,
|
// }).executeBundles,
|
||||||
// .setBindGroup = (struct {
|
|
||||||
// pub fn setBindGroup(
|
|
||||||
// ptr: *anyopaque,
|
|
||||||
// group_index: u32,
|
|
||||||
// group: BindGroup,
|
|
||||||
// dynamic_offsets: []u32,
|
|
||||||
// ) void {
|
|
||||||
// c.wgpuRenderBundleEncoderSetBindGroup(
|
|
||||||
// @ptrCast(c.WGPURenderBundleEncoder, ptr),
|
|
||||||
// group_index,
|
|
||||||
// @ptrCast(c.WGPUBindGroup, group.ptr),
|
|
||||||
// @intCast(u32, dynamic_offsets.len),
|
|
||||||
// &dynamic_offsets[0],
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
// }).setBindGroup,
|
|
||||||
// .setBlendConstant = (struct {
|
// .setBlendConstant = (struct {
|
||||||
// pub fn setBlendConstant(ptr: *anyopaque, color: *const Color) void {
|
// pub fn setBlendConstant(ptr: *anyopaque, color: *const Color) void {
|
||||||
// c.wgpuRenderBundleEncoderSetBlendConstant(
|
// c.wgpuRenderBundleEncoderSetBlendConstant(
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
const Texture = @import("Texture.zig");
|
const Texture = @import("Texture.zig");
|
||||||
const Buffer = @import("Buffer.zig");
|
const Buffer = @import("Buffer.zig");
|
||||||
const RenderBundle = @import("RenderBundle.zig");
|
const RenderBundle = @import("RenderBundle.zig");
|
||||||
|
const BindGroup = @import("BindGroup.zig");
|
||||||
|
|
||||||
const RenderBundleEncoder = @This();
|
const RenderBundleEncoder = @This();
|
||||||
|
|
||||||
|
|
@ -33,8 +34,7 @@ pub const VTable = struct {
|
||||||
insertDebugMarker: fn (ptr: *anyopaque, marker_label: [*:0]const u8) void,
|
insertDebugMarker: fn (ptr: *anyopaque, marker_label: [*:0]const u8) void,
|
||||||
popDebugGroup: fn (ptr: *anyopaque) void,
|
popDebugGroup: fn (ptr: *anyopaque) void,
|
||||||
pushDebugGroup: fn (ptr: *anyopaque, group_label: [*:0]const u8) 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: []u32) void,
|
||||||
// WGPU_EXPORT void wgpuRenderBundleEncoderSetBindGroup(WGPURenderBundleEncoder renderBundleEncoder, uint32_t groupIndex, WGPUBindGroup group, uint32_t dynamicOffsetCount, uint32_t const * dynamicOffsets);
|
|
||||||
// setIndexBuffer: fn (ptr: *anyopaque, buffer: Buffer, format: IndexFormat, offset: u64, size: u64) void,
|
// setIndexBuffer: fn (ptr: *anyopaque, buffer: Buffer, format: IndexFormat, offset: u64, size: u64) void,
|
||||||
// WGPU_EXPORT void wgpuRenderBundleEncoderSetIndexBuffer(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size);
|
// WGPU_EXPORT void wgpuRenderBundleEncoderSetIndexBuffer(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size);
|
||||||
setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void,
|
setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void,
|
||||||
|
|
@ -97,6 +97,15 @@ pub inline fn pushDebugGroup(enc: RenderBundleEncoder, group_label: [*:0]const u
|
||||||
enc.vtable.pushDebugGroup(enc.ptr, group_label);
|
enc.vtable.pushDebugGroup(enc.ptr, group_label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub inline fn setBindGroup(
|
||||||
|
enc: RenderBundleEncoder,
|
||||||
|
group_index: u32,
|
||||||
|
group: BindGroup,
|
||||||
|
dynamic_offsets: []u32,
|
||||||
|
) void {
|
||||||
|
enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets);
|
||||||
|
}
|
||||||
|
|
||||||
// pub inline fn beginOcclusionQuery(enc: RenderBundleEncoder, query_index: u32) void {
|
// pub inline fn beginOcclusionQuery(enc: RenderBundleEncoder, query_index: u32) void {
|
||||||
// enc.vtable.beginOcclusionQuery(enc.ptr, query_index);
|
// enc.vtable.beginOcclusionQuery(enc.ptr, query_index);
|
||||||
// }
|
// }
|
||||||
|
|
@ -109,15 +118,6 @@ pub inline fn pushDebugGroup(enc: RenderBundleEncoder, group_label: [*:0]const u
|
||||||
// enc.vtable.executeBundles(enc.ptr, bundles);
|
// enc.vtable.executeBundles(enc.ptr, bundles);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// pub inline fn setBindGroup(
|
|
||||||
// enc: RenderBundleEncoder,
|
|
||||||
// group_index: u32,
|
|
||||||
// group: BindGroup,
|
|
||||||
// dynamic_offsets: []u32,
|
|
||||||
// ) void {
|
|
||||||
// enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// pub inline fn setBlendConstant(enc: RenderBundleEncoder, color: *const Color) void {
|
// pub inline fn setBlendConstant(enc: RenderBundleEncoder, color: *const Color) void {
|
||||||
// enc.vtable.setBlendConstant(enc.ptr, color);
|
// enc.vtable.setBlendConstant(enc.ptr, color);
|
||||||
// }
|
// }
|
||||||
|
|
@ -195,5 +195,6 @@ test {
|
||||||
_ = insertDebugMarker;
|
_ = insertDebugMarker;
|
||||||
_ = popDebugGroup;
|
_ = popDebugGroup;
|
||||||
_ = pushDebugGroup;
|
_ = pushDebugGroup;
|
||||||
|
_ = setBindGroup;
|
||||||
_ = Descriptor;
|
_ = Descriptor;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue