From 1db208d2dff974fd6d095d533b86c36d80541018 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Wed, 16 Mar 2022 10:50:24 -0700 Subject: [PATCH] gpu: implement RenderPassEncoder.setVertexBuffer Signed-off-by: Stephen Gutekanst --- gpu/src/NativeInstance.zig | 22 +++++++++++----------- gpu/src/RenderPassEncoder.zig | 24 +++++++++++------------- 2 files changed, 22 insertions(+), 24 deletions(-) diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index f7d30f9a..63719ada 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -1051,17 +1051,17 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{ ); } }).setStencilReference, - // .setVertexBuffer = (struct { - // pub fn setVertexBuffer(ptr: *anyopaque, slot: u32, buffer: Buffer, offset: u64, size: u64) void { - // c.wgpuRenderPassEncoderSetVertexBuffer( - // @ptrCast(c.WGPURenderPassEncoder, ptr), - // slot, - // @ptrCast(c.WGPUBuffer, buffer.ptr), - // offset, - // size, - // ); - // } - // }).setVertexBuffer, + .setVertexBuffer = (struct { + pub fn setVertexBuffer(ptr: *anyopaque, slot: u32, buffer: Buffer, offset: u64, size: u64) void { + c.wgpuRenderPassEncoderSetVertexBuffer( + @ptrCast(c.WGPURenderPassEncoder, ptr), + slot, + @ptrCast(c.WGPUBuffer, buffer.ptr), + offset, + size, + ); + } + }).setVertexBuffer, // .setViewport = (struct { // pub fn setViewport( // ptr: *anyopaque, diff --git a/gpu/src/RenderPassEncoder.zig b/gpu/src/RenderPassEncoder.zig index 08fb1683..b082763a 100644 --- a/gpu/src/RenderPassEncoder.zig +++ b/gpu/src/RenderPassEncoder.zig @@ -44,7 +44,7 @@ pub const VTable = struct { setPipeline: fn (ptr: *anyopaque, pipeline: RenderPipeline) void, setScissorRect: fn (ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void, setStencilReference: fn (ptr: *anyopaque, reference: u32) void, - // 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, // setViewport: fn (ptr: *anyopaque, x: f32, y: f32, width: f32, height: f32, min_depth: f32, max_depth: f32) void, // writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void, }; @@ -153,17 +153,15 @@ pub inline fn setStencilReference(pass: RenderPassEncoder, ref: u32) void { pass.vtable.setStencilReference(pass.ptr, ref); } -// pub inline fn setVertexBuffer( -// pass: RenderPassEncoder, -// slot: u32, -// buffer: Buffer, -// offset: u64, -// size: u64, -// ) void { -// pass.vtable.setVertexBuffer(pass.ptr, slot, buffer, offset, size); -// } -// // setVertexBuffer: fn (ptr: *anyopaque, slot: u32, buffer: Buffer, offset: u64, size: u64) void, -// // WGPU_EXPORT void wgpuRenderPassEncoderSetVertexBuffer(WGPURenderPassEncoder renderPassEncoder, uint32_t slot, WGPUBuffer buffer, uint64_t offset, uint64_t size); +pub inline fn setVertexBuffer( + pass: RenderPassEncoder, + slot: u32, + buffer: Buffer, + offset: u64, + size: u64, +) void { + pass.vtable.setVertexBuffer(pass.ptr, slot, buffer, offset, size); +} // pub inline fn setViewport( // pass: RenderPassEncoder, @@ -215,7 +213,7 @@ test { _ = setPipeline; _ = setPipeline; _ = setStencilReference; - // _ = setVertexBuffer; + _ = setVertexBuffer; // _ = setViewport; // _ = writeTimestamp; _ = Descriptor;