gpu: implement Device.createRenderBundleEncoder
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
8c48c3a436
commit
def801d8a1
2 changed files with 21 additions and 14 deletions
|
|
@ -22,6 +22,7 @@ const Buffer = @import("Buffer.zig");
|
||||||
const ExternalTexture = @import("ExternalTexture.zig");
|
const ExternalTexture = @import("ExternalTexture.zig");
|
||||||
const PipelineLayout = @import("PipelineLayout.zig");
|
const PipelineLayout = @import("PipelineLayout.zig");
|
||||||
const QuerySet = @import("QuerySet.zig");
|
const QuerySet = @import("QuerySet.zig");
|
||||||
|
const RenderBundleEncoder = @import("RenderBundleEncoder.zig");
|
||||||
|
|
||||||
const Device = @This();
|
const Device = @This();
|
||||||
|
|
||||||
|
|
@ -47,7 +48,7 @@ pub const VTable = struct {
|
||||||
createExternalTexture: fn (ptr: *anyopaque, descriptor: *const ExternalTexture.Descriptor) ExternalTexture,
|
createExternalTexture: fn (ptr: *anyopaque, descriptor: *const ExternalTexture.Descriptor) ExternalTexture,
|
||||||
createPipelineLayout: fn (ptr: *anyopaque, descriptor: *const PipelineLayout.Descriptor) PipelineLayout,
|
createPipelineLayout: fn (ptr: *anyopaque, descriptor: *const PipelineLayout.Descriptor) PipelineLayout,
|
||||||
createQuerySet: fn (ptr: *anyopaque, descriptor: *const QuerySet.Descriptor) QuerySet,
|
createQuerySet: fn (ptr: *anyopaque, descriptor: *const QuerySet.Descriptor) QuerySet,
|
||||||
// createRenderBundleEncoder: fn (ptr: *anyopaque, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder,
|
createRenderBundleEncoder: fn (ptr: *anyopaque, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder,
|
||||||
createRenderPipeline: fn (ptr: *anyopaque, descriptor: *const RenderPipeline.Descriptor) RenderPipeline,
|
createRenderPipeline: fn (ptr: *anyopaque, descriptor: *const RenderPipeline.Descriptor) RenderPipeline,
|
||||||
createRenderPipelineAsync: fn (
|
createRenderPipelineAsync: fn (
|
||||||
ptr: *anyopaque,
|
ptr: *anyopaque,
|
||||||
|
|
@ -163,11 +164,9 @@ pub inline fn createQuerySet(device: Device, descriptor: *const QuerySet.Descrip
|
||||||
return device.vtable.createQuerySet(device.ptr, descriptor);
|
return device.vtable.createQuerySet(device.ptr, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
// pub inline fn createRenderBundleEncoder(device: Device, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder {
|
pub inline fn createRenderBundleEncoder(device: Device, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder {
|
||||||
// return device.vtable.createRenderBundleEncoder(device.ptr, descriptor);
|
return device.vtable.createRenderBundleEncoder(device.ptr, descriptor);
|
||||||
// }
|
}
|
||||||
// createRenderBundleEncoder: fn (ptr: *anyopaque, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder,
|
|
||||||
// WGPU_EXPORT WGPURenderBundleEncoder wgpuDeviceCreateRenderBundleEncoder(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor);
|
|
||||||
|
|
||||||
pub inline fn createRenderPipeline(device: Device, descriptor: *const RenderPipeline.Descriptor) RenderPipeline {
|
pub inline fn createRenderPipeline(device: Device, descriptor: *const RenderPipeline.Descriptor) RenderPipeline {
|
||||||
return device.vtable.createRenderPipeline(device.ptr, descriptor);
|
return device.vtable.createRenderPipeline(device.ptr, descriptor);
|
||||||
|
|
@ -215,7 +214,7 @@ test {
|
||||||
_ = createExternalTexture;
|
_ = createExternalTexture;
|
||||||
_ = createPipelineLayout;
|
_ = createPipelineLayout;
|
||||||
_ = createQuerySet;
|
_ = createQuerySet;
|
||||||
// _ = createRenderBundleEncoder;
|
_ = createRenderBundleEncoder;
|
||||||
_ = createRenderPipeline;
|
_ = createRenderPipeline;
|
||||||
_ = createRenderPipelineAsync;
|
_ = createRenderPipelineAsync;
|
||||||
_ = tick;
|
_ = tick;
|
||||||
|
|
|
||||||
|
|
@ -562,13 +562,21 @@ const device_vtable = Device.VTable{
|
||||||
return wrapQuerySet(c.wgpuDeviceCreateQuerySet(@ptrCast(c.WGPUDevice, ptr), &desc));
|
return wrapQuerySet(c.wgpuDeviceCreateQuerySet(@ptrCast(c.WGPUDevice, ptr), &desc));
|
||||||
}
|
}
|
||||||
}).createQuerySet,
|
}).createQuerySet,
|
||||||
|
.createRenderBundleEncoder = (struct {
|
||||||
// pub inline fn createRenderBundleEncoder(device: Device, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder {
|
pub fn createRenderBundleEncoder(ptr: *anyopaque, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder {
|
||||||
// return device.vtable.createRenderBundleEncoder(device.ptr);
|
const desc = c.WGPURenderBundleEncoderDescriptor{
|
||||||
// }
|
.nextInChain = null,
|
||||||
// createRenderBundleEncoder: fn (ptr: *anyopaque, descriptor: *const RenderBundleEncoder.Descriptor) RenderBundleEncoder,
|
.label = if (descriptor.label) |l| l else null,
|
||||||
// WGPU_EXPORT WGPURenderBundleEncoder wgpuDeviceCreateRenderBundleEncoder(WGPUDevice device, WGPURenderBundleEncoderDescriptor const * descriptor);
|
.colorFormatsCount = @intCast(u32, descriptor.color_formats.len),
|
||||||
|
.colorFormats = @ptrCast(*const c.WGPUTextureFormat, &descriptor.color_formats[0]),
|
||||||
|
.depthStencilFormat = @enumToInt(descriptor.depth_stencil_format),
|
||||||
|
.sampleCount = descriptor.sample_count,
|
||||||
|
.depthReadOnly = descriptor.depth_read_only,
|
||||||
|
.stencilReadOnly = descriptor.stencil_read_only,
|
||||||
|
};
|
||||||
|
return wrapRenderBundleEncoder(c.wgpuDeviceCreateRenderBundleEncoder(@ptrCast(c.WGPUDevice, ptr), &desc));
|
||||||
|
}
|
||||||
|
}).createRenderBundleEncoder,
|
||||||
.createRenderPipeline = (struct {
|
.createRenderPipeline = (struct {
|
||||||
pub fn createRenderPipeline(ptr: *anyopaque, descriptor: *const RenderPipeline.Descriptor) RenderPipeline {
|
pub fn createRenderPipeline(ptr: *anyopaque, descriptor: *const RenderPipeline.Descriptor) RenderPipeline {
|
||||||
var tmp_depth_stencil: c.WGPUDepthStencilState = undefined;
|
var tmp_depth_stencil: c.WGPUDepthStencilState = undefined;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue