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,
|
}).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 {
|
fn wrapRenderBundleEncoder(enc: c.WGPURenderBundleEncoder) RenderBundleEncoder {
|
||||||
|
|
|
||||||
|
|
@ -43,14 +43,10 @@ pub const VTable = struct {
|
||||||
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,
|
||||||
// setStencilReference: fn (ptr: *anyopaque, reference: 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,
|
// 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,
|
// 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,
|
// 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 {
|
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);
|
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 {
|
pub const Descriptor = struct {
|
||||||
label: ?[*:0]const u8 = null,
|
label: ?[*:0]const u8 = null,
|
||||||
color_attachments: []const RenderPassColorAttachment,
|
color_attachments: []const RenderPassColorAttachment,
|
||||||
|
|
@ -182,5 +214,9 @@ test {
|
||||||
_ = setLabel;
|
_ = setLabel;
|
||||||
_ = setPipeline;
|
_ = setPipeline;
|
||||||
_ = setPipeline;
|
_ = setPipeline;
|
||||||
|
_ = setStencilReference;
|
||||||
|
// _ = setVertexBuffer;
|
||||||
|
// _ = setViewport;
|
||||||
|
// _ = writeTimestamp;
|
||||||
_ = Descriptor;
|
_ = Descriptor;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue