From 67f77d5a8c63cdea16607132915f1e1352ed35eb Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Wed, 16 Mar 2022 10:41:07 -0700 Subject: [PATCH] gpu: implement RenderPassEncoder.setScissorRect Signed-off-by: Stephen Gutekanst --- gpu/src/NativeInstance.zig | 11 +++++++++++ gpu/src/RenderPassEncoder.zig | 8 ++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index 9df6d581..71d69542 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -1032,6 +1032,17 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{ ); } }).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 { diff --git a/gpu/src/RenderPassEncoder.zig b/gpu/src/RenderPassEncoder.zig index f8d4cb52..e12762a5 100644 --- a/gpu/src/RenderPassEncoder.zig +++ b/gpu/src/RenderPassEncoder.zig @@ -42,8 +42,7 @@ pub const VTable = struct { 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, - // 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); + setScissorRect: fn (ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void, // setStencilReference: fn (ptr: *anyopaque, reference: u32) void, // WGPU_EXPORT void wgpuRenderPassEncoderSetStencilReference(WGPURenderPassEncoder renderPassEncoder, uint32_t reference); // 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); } +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 { label: ?[*:0]const u8 = null, color_attachments: []const RenderPassColorAttachment, @@ -178,5 +181,6 @@ test { _ = setIndexBuffer; _ = setLabel; _ = setPipeline; + _ = setPipeline; _ = Descriptor; }