gpu: implement RenderPassEncoder.setScissorRect

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-03-16 10:41:07 -07:00 committed by Stephen Gutekanst
parent 2c319d628a
commit 67f77d5a8c
2 changed files with 17 additions and 2 deletions

View file

@ -1032,6 +1032,17 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{
); );
} }
}).setIndexBuffer, }).setIndexBuffer,
.setScissorRect = (struct {
pub fn setScissorRect(ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void {
c.wgpuRenderPassEncoderSetScissorRect(
@ptrCast(c.WGPURenderPassEncoder, ptr),
x,
y,
width,
height,
);
}
}).setScissorRect,
}; };
fn wrapRenderBundleEncoder(enc: c.WGPURenderBundleEncoder) RenderBundleEncoder { fn wrapRenderBundleEncoder(enc: c.WGPURenderBundleEncoder) RenderBundleEncoder {

View file

@ -42,8 +42,7 @@ pub const VTable = struct {
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,
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,
// setScissorRect: fn (ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void, setScissorRect: fn (ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void,
// WGPU_EXPORT void wgpuRenderPassEncoderSetScissorRect(WGPURenderPassEncoder renderPassEncoder, uint32_t x, uint32_t y, uint32_t width, uint32_t height);
// setStencilReference: fn (ptr: *anyopaque, reference: u32) void, // setStencilReference: fn (ptr: *anyopaque, reference: u32) void,
// WGPU_EXPORT void wgpuRenderPassEncoderSetStencilReference(WGPURenderPassEncoder renderPassEncoder, uint32_t reference); // WGPU_EXPORT void wgpuRenderPassEncoderSetStencilReference(WGPURenderPassEncoder renderPassEncoder, uint32_t reference);
// setVertexBuffer: fn (ptr: *anyopaque, slot: u32, buffer: Buffer, offset: u64, size: u64) void, // setVertexBuffer: fn (ptr: *anyopaque, slot: u32, buffer: Buffer, offset: u64, size: u64) void,
@ -150,6 +149,10 @@ pub inline fn setPipeline(pass: RenderPassEncoder, pipeline: RenderPipeline) voi
pass.vtable.setPipeline(pass.ptr, pipeline); pass.vtable.setPipeline(pass.ptr, pipeline);
} }
pub inline fn setScissorRect(pass: RenderPassEncoder, x: u32, y: u32, width: u32, height: u32) void {
pass.vtable.setScissorRect(pass.ptr, x, y, width, height);
}
pub const Descriptor = struct { pub const Descriptor = struct {
label: ?[*:0]const u8 = null, label: ?[*:0]const u8 = null,
color_attachments: []const RenderPassColorAttachment, color_attachments: []const RenderPassColorAttachment,
@ -178,5 +181,6 @@ test {
_ = setIndexBuffer; _ = setIndexBuffer;
_ = setLabel; _ = setLabel;
_ = setPipeline; _ = setPipeline;
_ = setPipeline;
_ = Descriptor; _ = Descriptor;
} }