diff --git a/gpu/src/NativeInstance.zig b/gpu/src/NativeInstance.zig index db40bc6b..e9f39c1d 100644 --- a/gpu/src/NativeInstance.zig +++ b/gpu/src/NativeInstance.zig @@ -1204,6 +1204,23 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{ ); } }).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 { // pub fn beginOcclusionQuery(ptr: *anyopaque, query_index: u32) void { // c.wgpuRenderBundleEncoderBeginOcclusionQuery(@ptrCast(c.WGPURenderBundleEncoder, ptr), query_index); @@ -1246,23 +1263,6 @@ const render_bundle_encoder_vtable = RenderBundleEncoder.VTable{ // ); // } // }).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 { // pub fn setScissorRect(ptr: *anyopaque, x: u32, y: u32, width: u32, height: u32) void { // c.wgpuRenderBundleEncoderSetScissorRect( diff --git a/gpu/src/RenderBundleEncoder.zig b/gpu/src/RenderBundleEncoder.zig index 4cc955db..d633933d 100644 --- a/gpu/src/RenderBundleEncoder.zig +++ b/gpu/src/RenderBundleEncoder.zig @@ -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 IndexFormat = @import("enums.zig").IndexFormat; const RenderBundleEncoder = @This(); @@ -35,8 +36,7 @@ pub const VTable = struct { popDebugGroup: fn (ptr: *anyopaque) void, pushDebugGroup: fn (ptr: *anyopaque, group_label: [*:0]const u8) 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, - // WGPU_EXPORT void wgpuRenderBundleEncoderSetIndexBuffer(WGPURenderBundleEncoder renderBundleEncoder, WGPUBuffer buffer, WGPUIndexFormat format, uint64_t offset, uint64_t size); + 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); @@ -106,6 +106,16 @@ pub inline fn setBindGroup( 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 { // enc.vtable.beginOcclusionQuery(enc.ptr, query_index); // } @@ -122,16 +132,6 @@ pub inline fn setBindGroup( // 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 { enc.vtable.setLabel(enc.ptr, label); } @@ -196,5 +196,6 @@ test { _ = popDebugGroup; _ = pushDebugGroup; _ = setBindGroup; + _ = setIndexBuffer; _ = Descriptor; }