gpu: implement RenderPassEncoder.setStencilReference
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
67f77d5a8c
commit
ec59227eb8
2 changed files with 85 additions and 5 deletions
|
|
@ -1043,6 +1043,50 @@ const render_pass_encoder_vtable = RenderPassEncoder.VTable{
|
|||
);
|
||||
}
|
||||
}).setScissorRect,
|
||||
.setStencilReference = (struct {
|
||||
pub fn setStencilReference(ptr: *anyopaque, reference: u32) void {
|
||||
c.wgpuRenderPassEncoderSetStencilReference(
|
||||
@ptrCast(c.WGPURenderPassEncoder, ptr),
|
||||
reference,
|
||||
);
|
||||
}
|
||||
}).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,
|
||||
// .setViewport = (struct {
|
||||
// pub fn setViewport(
|
||||
// ptr: *anyopaque,
|
||||
// x: f32,
|
||||
// y: f32,
|
||||
// width: f32,
|
||||
// height: f32,
|
||||
// min_depth: f32,
|
||||
// max_depth: f32,
|
||||
// ) void {
|
||||
// c.wgpuRenderPassEncoderSetViewport(
|
||||
// @ptrCast(c.WGPURenderPassEncoder, ptr),
|
||||
// x, y, width, height, min_depth, max_depth,
|
||||
// );
|
||||
// }
|
||||
// }).setViewport,
|
||||
// .writeTimestamp = (struct {
|
||||
// pub fn writeTimestamp(ptr: *anyopaque, query_set: QuerySet, query_index: u32) void {
|
||||
// c.wgpuRenderPassEncoderWriteTimestamp(
|
||||
// @ptrCast(c.WGPURenderPassEncoder, ptr),
|
||||
// @ptrCast(c.WGPUQuerySet, query_set.ptr),
|
||||
// query_index,
|
||||
// );
|
||||
// }
|
||||
// }).writeTimestamp,
|
||||
};
|
||||
|
||||
fn wrapRenderBundleEncoder(enc: c.WGPURenderBundleEncoder) RenderBundleEncoder {
|
||||
|
|
|
|||
|
|
@ -43,14 +43,10 @@ pub const VTable = struct {
|
|||
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,
|
||||
// setStencilReference: fn (ptr: *anyopaque, reference: u32) void,
|
||||
// WGPU_EXPORT void wgpuRenderPassEncoderSetStencilReference(WGPURenderPassEncoder renderPassEncoder, uint32_t reference);
|
||||
setStencilReference: fn (ptr: *anyopaque, reference: u32) void,
|
||||
// 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);
|
||||
// setViewport: fn (ptr: *anyopaque, x: f32, y: f32, width: f32, height: f32, min_depth: f32, max_depth: f32) void,
|
||||
// WGPU_EXPORT void wgpuRenderPassEncoderSetViewport(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth);
|
||||
// writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void,
|
||||
// WGPU_EXPORT void wgpuRenderPassEncoderWriteTimestamp(WGPURenderPassEncoder renderPassEncoder, WGPUQuerySet querySet, uint32_t queryIndex);
|
||||
};
|
||||
|
||||
pub inline fn reference(pass: RenderPassEncoder) void {
|
||||
|
|
@ -153,6 +149,42 @@ pub inline fn setScissorRect(pass: RenderPassEncoder, x: u32, y: u32, width: u32
|
|||
pass.vtable.setScissorRect(pass.ptr, x, y, width, height);
|
||||
}
|
||||
|
||||
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 setViewport(
|
||||
// pass: RenderPassEncoder,
|
||||
// x: f32,
|
||||
// y: f32,
|
||||
// width: f32,
|
||||
// height: f32,
|
||||
// min_depth: f32,
|
||||
// max_depth: f32,
|
||||
// ) void {
|
||||
// pass.vtable.setViewport(pass.ptr, x, y, width, height, min_depth, max_depth);
|
||||
// }
|
||||
// // setViewport: fn (ptr: *anyopaque, x: f32, y: f32, width: f32, height: f32, min_depth: f32, max_depth: f32) void,
|
||||
// // WGPU_EXPORT void wgpuRenderPassEncoderSetViewport(WGPURenderPassEncoder renderPassEncoder, float x, float y, float width, float height, float minDepth, float maxDepth);
|
||||
|
||||
// pub inline fn writeTimestamp(pass: RenderPassEncoder, query_set: QuerySet, query_index: u32) void {
|
||||
// pass.vtable.writeTimestamp(pass.ptr, query_set, query_index);
|
||||
// }
|
||||
// // writeTimestamp: fn (ptr: *anyopaque, query_set: QuerySet, query_index: u32) void,
|
||||
// // WGPU_EXPORT void wgpuRenderPassEncoderWriteTimestamp(WGPURenderPassEncoder renderPassEncoder, WGPUQuerySet querySet, uint32_t queryIndex);
|
||||
|
||||
pub const Descriptor = struct {
|
||||
label: ?[*:0]const u8 = null,
|
||||
color_attachments: []const RenderPassColorAttachment,
|
||||
|
|
@ -182,5 +214,9 @@ test {
|
|||
_ = setLabel;
|
||||
_ = setPipeline;
|
||||
_ = setPipeline;
|
||||
_ = setStencilReference;
|
||||
// _ = setVertexBuffer;
|
||||
// _ = setViewport;
|
||||
// _ = writeTimestamp;
|
||||
_ = Descriptor;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue