gpu: internalize CommandEncoder types

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-07-29 23:44:40 -07:00 committed by Stephen Gutekanst
parent 99ff21e992
commit 85fbe41a86
3 changed files with 9 additions and 10 deletions

View file

@ -12,6 +12,11 @@ const Extent3D = @import("types.zig").Extent3D;
const Impl = @import("interface.zig").Impl; const Impl = @import("interface.zig").Impl;
pub const CommandEncoder = opaque { pub const CommandEncoder = opaque {
pub const Descriptor = extern struct {
next_in_chain: ?*const ChainedStruct = null,
label: ?[*:0]const u8 = null,
};
pub inline fn beginComputePass(command_encoder: *CommandEncoder, descriptor: ?*const ComputePassDescriptor) *ComputePassEncoder { pub inline fn beginComputePass(command_encoder: *CommandEncoder, descriptor: ?*const ComputePassDescriptor) *ComputePassEncoder {
return Impl.commandEncoderBeginComputePass(command_encoder, descriptor); return Impl.commandEncoderBeginComputePass(command_encoder, descriptor);
} }
@ -92,8 +97,3 @@ pub const CommandEncoder = opaque {
Impl.commandEncoderRelease(command_encoder); Impl.commandEncoderRelease(command_encoder);
} }
}; };
pub const CommandEncoderDescriptor = extern struct {
next_in_chain: ?*const ChainedStruct = null,
label: ?[*:0]const u8 = null,
};

View file

@ -4,7 +4,6 @@ const BindGroup = @import("bind_group.zig").BindGroup;
const BindGroupLayout = @import("bind_group_layout.zig").BindGroupLayout; const BindGroupLayout = @import("bind_group_layout.zig").BindGroupLayout;
const Buffer = @import("buffer.zig").Buffer; const Buffer = @import("buffer.zig").Buffer;
const CommandEncoder = @import("command_encoder.zig").CommandEncoder; const CommandEncoder = @import("command_encoder.zig").CommandEncoder;
const CommandEncoderDescriptor = @import("command_encoder.zig").CommandEncoderDescriptor;
const ComputePipeline = @import("compute_pipeline.zig").ComputePipeline; const ComputePipeline = @import("compute_pipeline.zig").ComputePipeline;
const ComputePipelineDescriptor = @import("compute_pipeline.zig").ComputePipelineDescriptor; const ComputePipelineDescriptor = @import("compute_pipeline.zig").ComputePipelineDescriptor;
const ExternalTexture = @import("external_texture.zig").ExternalTexture; const ExternalTexture = @import("external_texture.zig").ExternalTexture;
@ -51,7 +50,7 @@ pub const Device = opaque {
return Impl.deviceCreateBuffer(device, descriptor); return Impl.deviceCreateBuffer(device, descriptor);
} }
pub inline fn createCommandEncoder(device: *Device, descriptor: ?*const CommandEncoderDescriptor) *CommandEncoder { pub inline fn createCommandEncoder(device: *Device, descriptor: ?*const CommandEncoder.Descriptor) *CommandEncoder {
return Impl.deviceCreateCommandEncoder(device, descriptor); return Impl.deviceCreateCommandEncoder(device, descriptor);
} }

View file

@ -82,7 +82,7 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "deviceCreateBindGroup", fn (device: *gpu.Device, descriptor: *const gpu.BindGroup.Descriptor) callconv(.Inline) *gpu.BindGroup); assertDecl(T, "deviceCreateBindGroup", fn (device: *gpu.Device, descriptor: *const gpu.BindGroup.Descriptor) callconv(.Inline) *gpu.BindGroup);
assertDecl(T, "deviceCreateBindGroupLayout", fn (device: *gpu.Device, descriptor: *const gpu.BindGroupLayout.Descriptor) callconv(.Inline) *gpu.BindGroupLayout); assertDecl(T, "deviceCreateBindGroupLayout", fn (device: *gpu.Device, descriptor: *const gpu.BindGroupLayout.Descriptor) callconv(.Inline) *gpu.BindGroupLayout);
assertDecl(T, "deviceCreateBuffer", fn (device: *gpu.Device, descriptor: *const gpu.Buffer.Descriptor) callconv(.Inline) *gpu.Buffer); assertDecl(T, "deviceCreateBuffer", fn (device: *gpu.Device, descriptor: *const gpu.Buffer.Descriptor) callconv(.Inline) *gpu.Buffer);
assertDecl(T, "deviceCreateCommandEncoder", fn (device: *gpu.Device, descriptor: ?*const gpu.CommandEncoderDescriptor) callconv(.Inline) *gpu.CommandEncoder); assertDecl(T, "deviceCreateCommandEncoder", fn (device: *gpu.Device, descriptor: ?*const gpu.CommandEncoder.Descriptor) callconv(.Inline) *gpu.CommandEncoder);
assertDecl(T, "deviceCreateComputePipeline", fn (device: *gpu.Device, descriptor: *const gpu.ComputePipelineDescriptor) callconv(.Inline) *gpu.ComputePipeline); assertDecl(T, "deviceCreateComputePipeline", fn (device: *gpu.Device, descriptor: *const gpu.ComputePipelineDescriptor) callconv(.Inline) *gpu.ComputePipeline);
assertDecl(T, "deviceCreateComputePipelineAsync", fn (device: *gpu.Device, descriptor: *const gpu.ComputePipelineDescriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: *anyopaque) callconv(.Inline) void); assertDecl(T, "deviceCreateComputePipelineAsync", fn (device: *gpu.Device, descriptor: *const gpu.ComputePipelineDescriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceCreateErrorBuffer", fn (device: *gpu.Device) callconv(.Inline) *gpu.Buffer); assertDecl(T, "deviceCreateErrorBuffer", fn (device: *gpu.Device) callconv(.Inline) *gpu.Buffer);
@ -564,7 +564,7 @@ pub fn Export(comptime T: type) type {
} }
// WGPU_EXPORT WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, WGPUCommandEncoderDescriptor const * descriptor /* nullable */); // WGPU_EXPORT WGPUCommandEncoder wgpuDeviceCreateCommandEncoder(WGPUDevice device, WGPUCommandEncoderDescriptor const * descriptor /* nullable */);
export fn wgpuDeviceCreateCommandEncoder(device: *gpu.Device, descriptor: ?*const gpu.CommandEncoderDescriptor) *gpu.CommandEncoder { export fn wgpuDeviceCreateCommandEncoder(device: *gpu.Device, descriptor: ?*const gpu.CommandEncoder.Descriptor) *gpu.CommandEncoder {
return T.deviceCreateCommandEncoder(device, descriptor); return T.deviceCreateCommandEncoder(device, descriptor);
} }
@ -1635,7 +1635,7 @@ pub const StubInterface = Interface(struct {
unreachable; unreachable;
} }
pub inline fn deviceCreateCommandEncoder(device: *gpu.Device, descriptor: ?*const gpu.CommandEncoderDescriptor) *gpu.CommandEncoder { pub inline fn deviceCreateCommandEncoder(device: *gpu.Device, descriptor: ?*const gpu.CommandEncoder.Descriptor) *gpu.CommandEncoder {
_ = device; _ = device;
_ = descriptor; _ = descriptor;
unreachable; unreachable;