gpu: example: use CommandEncoder.beginRenderPass
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
f5a5c7eaa7
commit
6385981d55
1 changed files with 16 additions and 15 deletions
|
|
@ -192,23 +192,24 @@ fn frame(params: FrameParams) !void {
|
||||||
}
|
}
|
||||||
|
|
||||||
const back_buffer_view = pl.swap_chain.?.getCurrentTextureView();
|
const back_buffer_view = pl.swap_chain.?.getCurrentTextureView();
|
||||||
var render_pass_info = std.mem.zeroes(c.WGPURenderPassDescriptor);
|
const color_attachment = gpu.RenderPassColorAttachment{
|
||||||
var color_attachment = std.mem.zeroes(c.WGPURenderPassColorAttachment);
|
.view = back_buffer_view,
|
||||||
color_attachment.view = @ptrCast(c.WGPUTextureView, back_buffer_view.ptr);
|
.resolve_target = null,
|
||||||
color_attachment.resolveTarget = null;
|
.clear_value = std.mem.zeroes(gpu.Color),
|
||||||
color_attachment.clearValue = c.WGPUColor{ .r = 0.0, .g = 0.0, .b = 0.0, .a = 0.0 };
|
.load_op = .clear,
|
||||||
color_attachment.loadOp = c.WGPULoadOp_Clear;
|
.store_op = .store,
|
||||||
color_attachment.storeOp = c.WGPUStoreOp_Store;
|
};
|
||||||
render_pass_info.colorAttachmentCount = 1;
|
|
||||||
render_pass_info.colorAttachments = &color_attachment;
|
|
||||||
render_pass_info.depthStencilAttachment = null;
|
|
||||||
|
|
||||||
const encoder = params.device.createCommandEncoder(null);
|
const encoder = params.device.createCommandEncoder(null);
|
||||||
const pass = c.wgpuCommandEncoderBeginRenderPass(@ptrCast(c.WGPUCommandEncoder, encoder.ptr), &render_pass_info);
|
const render_pass_info = gpu.RenderPassEncoder.Descriptor{
|
||||||
c.wgpuRenderPassEncoderSetPipeline(pass, @ptrCast(c.WGPURenderPipeline, params.pipeline.ptr));
|
.color_attachments = &.{color_attachment},
|
||||||
c.wgpuRenderPassEncoderDraw(pass, 3, 1, 0, 0);
|
.depth_stencil_attachment = null,
|
||||||
c.wgpuRenderPassEncoderEnd(pass);
|
};
|
||||||
c.wgpuRenderPassEncoderRelease(pass);
|
const pass = encoder.beginRenderPass(&render_pass_info);
|
||||||
|
c.wgpuRenderPassEncoderSetPipeline(@ptrCast(c.WGPURenderPassEncoder, pass.ptr), @ptrCast(c.WGPURenderPipeline, params.pipeline.ptr));
|
||||||
|
c.wgpuRenderPassEncoderDraw(@ptrCast(c.WGPURenderPassEncoder, pass.ptr), 3, 1, 0, 0);
|
||||||
|
c.wgpuRenderPassEncoderEnd(@ptrCast(c.WGPURenderPassEncoder, pass.ptr));
|
||||||
|
pass.release();
|
||||||
|
|
||||||
var commands = c.wgpuCommandEncoderFinish(@ptrCast(c.WGPUCommandEncoder, encoder.ptr), null);
|
var commands = c.wgpuCommandEncoderFinish(@ptrCast(c.WGPUCommandEncoder, encoder.ptr), null);
|
||||||
encoder.release();
|
encoder.release();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue