gpu: implement RenderBundleEncoder.setIndexBuffer

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-03-16 21:15:04 -07:00 committed by Stephen Gutekanst
parent d11e912e36
commit d42d6f7e60
2 changed files with 30 additions and 29 deletions

View file

@ -1204,6 +1204,23 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{
); );
} }
}).setBindGroup, }).setBindGroup,
.setIndexBuffer = (struct {
pub fn setIndexBuffer(
ptr: *anyopaque,
buffer: Buffer,
format: IndexFormat,
offset: u64,
size: u64,
) void {
c.wgpuRenderBundleEncoderSetIndexBuffer(
@ptrCast(c.WGPURenderBundleEncoder, ptr),
@ptrCast(c.WGPUBuffer, buffer.ptr),
@enumToInt(format),
offset,
size,
);
}
}).setIndexBuffer,
// .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);
@ -1246,23 +1263,6 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{
// ); // );
// } // }
// }).setBlendConstant, // }).setBlendConstant,
// .setIndexBuffer = (struct {
// pub fn setIndexBuffer(
// ptr: *anyopaque,
// buffer: Buffer,
// format: IndexFormat,
// offset: u64,
// size: u64,
// ) void {
// c.wgpuRenderBundleEncoderSetIndexBuffer(
// @ptrCast(c.WGPURenderBundleEncoder, ptr),
// @ptrCast(c.WGPUBuffer, buffer.ptr),
// @enumToInt(format),
// offset,
// size,
// );
// }
// }).setIndexBuffer,
// .setScissorRect = (struct { // .setScissorRect = (struct {
// pub fn setScissorRect(ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void { // pub fn setScissorRect(ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void {
// c.wgpuRenderBundleEncoderSetScissorRect( // c.wgpuRenderBundleEncoderSetScissorRect(

View file

@ -2,6 +2,7 @@ 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 BindGroup = @import("BindGroup.zig");
const IndexFormat = @import("enums.zig").IndexFormat;
const RenderBundleEncoder = @This(); const RenderBundleEncoder = @This();
@ -35,8 +36,7 @@ pub const VTable = struct {
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,
// 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);
setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void, setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void,
// setPipeline: fn (ptr: *anyopaque, pipeline: RenderPipeline) void, // setPipeline: fn (ptr: *anyopaque, pipeline: RenderPipeline) void,
// WGPU_EXPORT void wgpuRenderBundleEncoderSetPipeline(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline); // WGPU_EXPORT void wgpuRenderBundleEncoderSetPipeline(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline);
@ -106,6 +106,16 @@ pub inline fn setBindGroup(
enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets); enc.vtable.setBindGroup(enc.ptr, group_index, group, dynamic_offsets);
} }
pub inline fn setIndexBuffer(
enc: RenderBundleEncoder,
buffer: Buffer,
format: IndexFormat,
offset: u64,
size: u64,
) void {
enc.vtable.setIndexBuffer(enc.ptr, buffer, format, offset, size);
}
// 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);
// } // }
@ -122,16 +132,6 @@ pub inline fn setBindGroup(
// enc.vtable.setBlendConstant(enc.ptr, color); // enc.vtable.setBlendConstant(enc.ptr, color);
// } // }
// pub inline fn setIndexBuffer(
// enc: RenderBundleEncoder,
// buffer: Buffer,
// format: IndexFormat,
// offset: u64,
// size: u64,
// ) void {
// enc.vtable.setIndexBuffer(enc.ptr, buffer, format, offset, size);
// }
pub inline fn setLabel(enc: RenderBundleEncoder, label: [:0]const u8) void { pub inline fn setLabel(enc: RenderBundleEncoder, label: [:0]const u8) void {
enc.vtable.setLabel(enc.ptr, label); enc.vtable.setLabel(enc.ptr, label);
} }
@ -196,5 +196,6 @@ test {
_ = popDebugGroup; _ = popDebugGroup;
_ = pushDebugGroup; _ = pushDebugGroup;
_ = setBindGroup; _ = setBindGroup;
_ = setIndexBuffer;
_ = Descriptor; _ = Descriptor;
} }