gpu: implement RenderBundleEncoder.setPipeline

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-03-16 21:17:31 -07:00 committed by Stephen Gutekanst
parent d42d6f7e60
commit a2d7e983f3
2 changed files with 12 additions and 10 deletions

View file

@ -1117,11 +1117,11 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{
c.wgpuRenderBundleEncoderSetLabel(@ptrCast(c.WGPURenderBundleEncoder, ptr), label);
}
}).setLabel,
// .setPipeline = (struct {
// pub fn setPipeline(ptr: *anyopaque, pipeline: RenderPipeline) void {
// c.wgpuRenderBundleEncoderSetPipeline(@ptrCast(c.WGPURenderBundleEncoder, ptr), @ptrCast(c.WGPURenderPipeline, pipeline.ptr));
// }
// }).setPipeline,
.setPipeline = (struct {
pub fn setPipeline(ptr: *anyopaque, pipeline: RenderPipeline) void {
c.wgpuRenderBundleEncoderSetPipeline(@ptrCast(c.WGPURenderBundleEncoder, ptr), @ptrCast(c.WGPURenderPipeline, pipeline.ptr));
}
}).setPipeline,
.draw = (struct {
pub fn draw(ptr: *anyopaque, vertex_count: u32, instance_count: u32, first_vertex: u32, first_instance: u32) void {
c.wgpuRenderBundleEncoderDraw(@ptrCast(c.WGPURenderBundleEncoder, ptr), vertex_count, instance_count, first_vertex, first_instance);

View file

@ -2,6 +2,7 @@ const Texture = @import("Texture.zig");
const Buffer = @import("Buffer.zig");
const RenderBundle = @import("RenderBundle.zig");
const BindGroup = @import("BindGroup.zig");
const RenderPipeline = @import("RenderPipeline.zig");
const IndexFormat = @import("enums.zig").IndexFormat;
const RenderBundleEncoder = @This();
@ -38,8 +39,7 @@ pub const VTable = struct {
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,
setLabel: fn (ptr: *anyopaque, label: [:0]const u8) void,
// setPipeline: fn (ptr: *anyopaque, pipeline: RenderPipeline) void,
// WGPU_EXPORT void wgpuRenderBundleEncoderSetPipeline(WGPURenderBundleEncoder renderBundleEncoder, WGPURenderPipeline pipeline);
setPipeline: fn (ptr: *anyopaque, pipeline: RenderPipeline) void,
// setVertexBuffer: fn (ptr: *anyopaque, slot: u32, buffer: Buffer, offset: u64, size: u64) void,
// WGPU_EXPORT void wgpuRenderBundleEncoderSetVertexBuffer(WGPURenderBundleEncoder renderBundleEncoder, uint32_t slot, WGPUBuffer buffer, uint64_t offset, uint64_t size);
};
@ -136,9 +136,9 @@ pub inline fn setLabel(enc: RenderBundleEncoder, label: [:0]const u8) void {
enc.vtable.setLabel(enc.ptr, label);
}
// pub inline fn setPipeline(enc: RenderBundleEncoder, pipeline: RenderPipeline) void {
// enc.vtable.setPipeline(enc.ptr, pipeline);
// }
pub inline fn setPipeline(enc: RenderBundleEncoder, pipeline: RenderPipeline) void {
enc.vtable.setPipeline(enc.ptr, pipeline);
}
// pub inline fn setScissorRect(enc: RenderBundleEncoder, x: u32, y: u32, width: u32, height: u32) void {
// enc.vtable.setScissorRect(enc.ptr, x, y, width, height);
@ -197,5 +197,7 @@ test {
_ = pushDebugGroup;
_ = setBindGroup;
_ = setIndexBuffer;
_ = setLabel;
_ = setPipeline;
_ = Descriptor;
}