gpu: correct nullability of userdata pointers

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-07-30 23:43:16 -07:00 committed by Stephen Gutekanst
parent 000989df5b
commit a468c51ad4
9 changed files with 65 additions and 65 deletions

View file

@ -57,7 +57,7 @@ pub const Adapter = opaque {
return Impl.adapterHasFeature(adapter, feature);
}
pub inline fn requestDevice(adapter: *Adapter, descriptor: ?*const Device.Descriptor, callback: RequestDeviceCallback, userdata: *anyopaque) void {
pub inline fn requestDevice(adapter: *Adapter, descriptor: ?*const Device.Descriptor, callback: RequestDeviceCallback, userdata: ?*anyopaque) void {
Impl.adapterRequestDevice(adapter, descriptor, callback, userdata);
}

View file

@ -4,7 +4,7 @@ const MapModeFlags = @import("types.zig").MapModeFlags;
const Impl = @import("interface.zig").Impl;
pub const Buffer = opaque {
pub const MapCallback = fn (status: MapAsyncStatus, userdata: *anyopaque) callconv(.C) void;
pub const MapCallback = fn (status: MapAsyncStatus, userdata: ?*anyopaque) callconv(.C) void;
pub const BindingType = enum(u32) {
undef = 0x00000000,
@ -89,7 +89,7 @@ pub const Buffer = opaque {
return Impl.bufferGetUsage(buffer);
}
pub inline fn bufferMapAsync(buffer: *Buffer, mode: MapModeFlags, offset: usize, size: usize, callback: MapCallback, userdata: *anyopaque) void {
pub inline fn bufferMapAsync(buffer: *Buffer, mode: MapModeFlags, offset: usize, size: usize, callback: MapCallback, userdata: ?*anyopaque) void {
Impl.bufferMapAsync(buffer, mode, offset, size, callback, userdata);
}

View file

@ -13,45 +13,45 @@ const RenderPipeline = @import("render_pipeline.zig").RenderPipeline;
pub const CompilationInfoCallback = fn (
status: CompilationInfoRequestStatus,
compilation_info: *const CompilationInfo,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const ErrorCallback = fn (
typ: ErrorType,
message: [*:0]const u8,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const LoggingCallback = fn (
typ: LoggingType,
message: [*:0]const u8,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const RequestDeviceCallback = fn (
status: RequestDeviceStatus,
device: *Device,
message: ?[*:0]const u8,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const RequestAdapterCallback = fn (
status: RequestAdapterStatus,
adapter: *Adapter,
message: ?[*:0]const u8,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const CreateComputePipelineAsyncCallback = fn (
status: CreatePipelineAsyncStatus,
compute_pipeline: *ComputePipeline,
message: [*:0]const u8,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const CreateRenderPipelineAsyncCallback = fn (
status: CreatePipelineAsyncStatus,
pipeline: *RenderPipeline,
message: [*:0]const u8,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;

View file

@ -64,7 +64,7 @@ pub const Interface = gpu.Interface(struct {
);
}
pub inline fn adapterRequestDevice(adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: *anyopaque) void {
pub inline fn adapterRequestDevice(adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: ?*anyopaque) void {
return procs.adapterRequestDevice.?(
@ptrCast(c.WGPUAdapter, adapter),
@ptrCast(?*const c.WGPUDeviceDescriptor, descriptor),
@ -135,7 +135,7 @@ pub const Interface = gpu.Interface(struct {
return @bitCast(gpu.Buffer.UsageFlags, procs.bufferGetUsage.?(@ptrCast(c.WGPUBuffer, buffer)));
}
pub inline fn bufferMapAsync(buffer: *gpu.Buffer, mode: gpu.MapModeFlags, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: *anyopaque) void {
pub inline fn bufferMapAsync(buffer: *gpu.Buffer, mode: gpu.MapModeFlags, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: ?*anyopaque) void {
procs.bufferMapAsync.?(
@ptrCast(c.WGPUBuffer, buffer),
@bitCast(c.WGPUMapModeFlags, mode),
@ -447,7 +447,7 @@ pub const Interface = gpu.Interface(struct {
));
}
pub inline fn deviceCreateComputePipelineAsync(device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: *anyopaque) void {
pub inline fn deviceCreateComputePipelineAsync(device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: ?*anyopaque) void {
procs.deviceCreateComputePipelineAsync.?(
@ptrCast(c.WGPUDevice, device),
@ptrCast(*const c.WGPUComputePipelineDescriptor, descriptor),
@ -499,7 +499,7 @@ pub const Interface = gpu.Interface(struct {
));
}
pub inline fn deviceCreateRenderPipelineAsync(device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: *anyopaque) void {
pub inline fn deviceCreateRenderPipelineAsync(device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: ?*anyopaque) void {
procs.deviceCreateRenderPipelineAsync.?(
@ptrCast(c.WGPUDevice, device),
@ptrCast(*const c.WGPURenderPipelineDescriptor, descriptor),
@ -578,7 +578,7 @@ pub const Interface = gpu.Interface(struct {
procs.deviceLoseForTesting.?(@ptrCast(c.WGPUDevice, device));
}
pub inline fn devicePopErrorScope(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) bool {
pub inline fn devicePopErrorScope(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) bool {
return procs.devicePopErrorScope.?(
@ptrCast(c.WGPUDevice, device),
@ptrCast(c.WGPUErrorCallback, callback),
@ -593,7 +593,7 @@ pub const Interface = gpu.Interface(struct {
);
}
pub inline fn deviceSetDeviceLostCallback(device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: *anyopaque) void {
pub inline fn deviceSetDeviceLostCallback(device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: ?*anyopaque) void {
procs.deviceSetDeviceLostCallback.?(
@ptrCast(c.WGPUDevice, device),
@ptrCast(c.WGPUDeviceLostCallback, callback),
@ -605,7 +605,7 @@ pub const Interface = gpu.Interface(struct {
procs.deviceSetLabel.?(@ptrCast(c.WGPUDevice, device), label);
}
pub inline fn deviceSetLoggingCallback(device: *gpu.Device, callback: gpu.LoggingCallback, userdata: *anyopaque) void {
pub inline fn deviceSetLoggingCallback(device: *gpu.Device, callback: gpu.LoggingCallback, userdata: ?*anyopaque) void {
procs.deviceSetLoggingCallback.?(
@ptrCast(c.WGPUDevice, device),
@ptrCast(c.WGPULoggingCallback, callback),
@ -613,7 +613,7 @@ pub const Interface = gpu.Interface(struct {
);
}
pub inline fn deviceSetUncapturedErrorCallback(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) void {
pub inline fn deviceSetUncapturedErrorCallback(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) void {
procs.deviceSetUncapturedErrorCallback.?(
@ptrCast(c.WGPUDevice, device),
@ptrCast(c.WGPUErrorCallback, callback),
@ -656,7 +656,7 @@ pub const Interface = gpu.Interface(struct {
));
}
pub inline fn instanceRequestAdapter(instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: *anyopaque) void {
pub inline fn instanceRequestAdapter(instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: ?*anyopaque) void {
procs.instanceRequestAdapter.?(
@ptrCast(c.WGPUInstance, instance),
@ptrCast(*const c.WGPURequestAdapterOptions, options),
@ -719,7 +719,7 @@ pub const Interface = gpu.Interface(struct {
);
}
pub inline fn queueOnSubmittedWorkDone(queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: *anyopaque) void {
pub inline fn queueOnSubmittedWorkDone(queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: ?*anyopaque) void {
procs.queueOnSubmittedWorkDone.?(
@ptrCast(c.WGPUQueue, queue),
signal_value,
@ -1078,7 +1078,7 @@ pub const Interface = gpu.Interface(struct {
procs.samplerRelease.?(@ptrCast(c.WGPUSampler, sampler));
}
pub inline fn shaderModuleGetCompilationInfo(shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: *anyopaque) void {
pub inline fn shaderModuleGetCompilationInfo(shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: ?*anyopaque) void {
procs.shaderModuleGetCompilationInfo.?(
@ptrCast(c.WGPUShaderModule, shader_module),
@ptrCast(c.WGPUCompilationInfoCallback, callback),

View file

@ -30,7 +30,7 @@ pub const Device = opaque {
pub const LostCallback = fn (
reason: LostReason,
message: [*:0]const u8,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const LostReason = enum(u32) {
@ -67,7 +67,7 @@ pub const Device = opaque {
return Impl.deviceCreateComputePipeline(device, descriptor);
}
pub inline fn createComputePipelineAsync(device: *Device, descriptor: *const ComputePipeline.Descriptor, callback: CreateComputePipelineAsyncCallback, userdata: *anyopaque) void {
pub inline fn createComputePipelineAsync(device: *Device, descriptor: *const ComputePipeline.Descriptor, callback: CreateComputePipelineAsyncCallback, userdata: ?*anyopaque) void {
Impl.deviceCreateComputePipelineAsync(device, descriptor, callback, userdata);
}
@ -99,7 +99,7 @@ pub const Device = opaque {
return Impl.deviceCreateRenderPipeline(device, descriptor);
}
pub inline fn createRenderPipelineAsync(device: *Device, descriptor: *const RenderPipeline.Descriptor, callback: CreateRenderPipelineAsyncCallback, userdata: *anyopaque) void {
pub inline fn createRenderPipelineAsync(device: *Device, descriptor: *const RenderPipeline.Descriptor, callback: CreateRenderPipelineAsyncCallback, userdata: ?*anyopaque) void {
Impl.deviceCreateRenderPipelineAsync(device, descriptor, callback, userdata);
}
@ -147,7 +147,7 @@ pub const Device = opaque {
Impl.deviceLoseForTesting(device);
}
pub inline fn popErrorScope(device: *Device, callback: ErrorCallback, userdata: *anyopaque) bool {
pub inline fn popErrorScope(device: *Device, callback: ErrorCallback, userdata: ?*anyopaque) bool {
return Impl.devicePopErrorScope(device, callback, userdata);
}
@ -155,7 +155,7 @@ pub const Device = opaque {
Impl.devicePushErrorScope(device, filter);
}
pub inline fn setDeviceLostCallback(device: *Device, callback: Device.LostCallback, userdata: *anyopaque) void {
pub inline fn setDeviceLostCallback(device: *Device, callback: Device.LostCallback, userdata: ?*anyopaque) void {
Impl.deviceSetDeviceLostCallback(device, callback, userdata);
}
@ -163,11 +163,11 @@ pub const Device = opaque {
Impl.deviceSetLabel(device, label);
}
pub inline fn setLoggingCallback(device: *Device, callback: LoggingCallback, userdata: *anyopaque) void {
pub inline fn setLoggingCallback(device: *Device, callback: LoggingCallback, userdata: ?*anyopaque) void {
Impl.deviceSetLoggingCallback(device, callback, userdata);
}
pub inline fn setUncapturedErrorCallback(device: *Device, callback: ErrorCallback, userdata: *anyopaque) void {
pub inline fn setUncapturedErrorCallback(device: *Device, callback: ErrorCallback, userdata: ?*anyopaque) void {
Impl.deviceSetUncapturedErrorCallback(device, callback, userdata);
}

View file

@ -15,7 +15,7 @@ pub const Instance = opaque {
return Impl.instanceCreateSurface(instance, descriptor);
}
pub inline fn requestAdapter(instance: *Instance, options: *const RequestAdapterOptions, callback: RequestAdapterCallback, userdata: *anyopaque) void {
pub inline fn requestAdapter(instance: *Instance, options: *const RequestAdapterOptions, callback: RequestAdapterCallback, userdata: ?*anyopaque) void {
Impl.instanceRequestAdapter(instance, options, callback, userdata);
}

View file

@ -24,7 +24,7 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "adapterGetLimits", fn (adapter: *gpu.Adapter, limits: *gpu.SupportedLimits) callconv(.Inline) bool);
assertDecl(T, "adapterGetProperties", fn (adapter: *gpu.Adapter, properties: *gpu.Adapter.Properties) callconv(.Inline) void);
assertDecl(T, "adapterHasFeature", fn (adapter: *gpu.Adapter, feature: gpu.FeatureName) callconv(.Inline) bool);
assertDecl(T, "adapterRequestDevice", fn (adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "adapterRequestDevice", fn (adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "adapterReference", fn (adapter: *gpu.Adapter) callconv(.Inline) void);
assertDecl(T, "adapterRelease", fn (adapter: *gpu.Adapter) callconv(.Inline) void);
assertDecl(T, "bindGroupSetLabel", fn (bind_group: *gpu.BindGroup, label: [*:0]const u8) callconv(.Inline) void);
@ -38,7 +38,7 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "bufferGetMappedRange", fn (buffer: *gpu.Buffer, offset: usize, size: usize) callconv(.Inline) ?*anyopaque);
assertDecl(T, "bufferGetSize", fn (buffer: *gpu.Buffer) callconv(.Inline) u64);
assertDecl(T, "bufferGetUsage", fn (buffer: *gpu.Buffer) callconv(.Inline) gpu.Buffer.UsageFlags);
assertDecl(T, "bufferMapAsync", fn (buffer: *gpu.Buffer, mode: gpu.MapModeFlags, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "bufferMapAsync", fn (buffer: *gpu.Buffer, mode: gpu.MapModeFlags, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "bufferSetLabel", fn (buffer: *gpu.Buffer, label: [*:0]const u8) callconv(.Inline) void);
assertDecl(T, "bufferUnmap", fn (buffer: *gpu.Buffer) callconv(.Inline) void);
assertDecl(T, "bufferReference", fn (buffer: *gpu.Buffer) callconv(.Inline) void);
@ -86,7 +86,7 @@ pub fn Interface(comptime T: type) type {
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.CommandEncoder.Descriptor) callconv(.Inline) *gpu.CommandEncoder);
assertDecl(T, "deviceCreateComputePipeline", fn (device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor) callconv(.Inline) *gpu.ComputePipeline);
assertDecl(T, "deviceCreateComputePipelineAsync", fn (device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceCreateComputePipelineAsync", fn (device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceCreateErrorBuffer", fn (device: *gpu.Device) callconv(.Inline) *gpu.Buffer);
assertDecl(T, "deviceCreateErrorExternalTexture", fn (device: *gpu.Device) callconv(.Inline) *gpu.ExternalTexture);
assertDecl(T, "deviceCreateExternalTexture", fn (device: *gpu.Device, external_texture_descriptor: *const gpu.ExternalTexture.Descriptor) callconv(.Inline) *gpu.ExternalTexture);
@ -94,7 +94,7 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "deviceCreateQuerySet", fn (device: *gpu.Device, descriptor: *const gpu.QuerySet.Descriptor) callconv(.Inline) *gpu.QuerySet);
assertDecl(T, "deviceCreateRenderBundleEncoder", fn (device: *gpu.Device, descriptor: *const gpu.RenderBundleEncoder.Descriptor) callconv(.Inline) *gpu.RenderBundleEncoder);
assertDecl(T, "deviceCreateRenderPipeline", fn (device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor) callconv(.Inline) *gpu.RenderPipeline);
assertDecl(T, "deviceCreateRenderPipelineAsync", fn (device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceCreateRenderPipelineAsync", fn (device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceCreateSampler", fn (device: *gpu.Device, descriptor: ?*const gpu.Sampler.Descriptor) callconv(.Inline) *gpu.Sampler);
assertDecl(T, "deviceCreateShaderModule", fn (device: *gpu.Device, descriptor: *const gpu.ShaderModule.Descriptor) callconv(.Inline) *gpu.ShaderModule);
assertDecl(T, "deviceCreateSwapChain", fn (device: *gpu.Device, surface: ?*gpu.Surface, descriptor: *const gpu.SwapChain.Descriptor) callconv(.Inline) *gpu.SwapChain);
@ -106,12 +106,12 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "deviceHasFeature", fn (device: *gpu.Device, feature: gpu.FeatureName) callconv(.Inline) bool);
assertDecl(T, "deviceInjectError", fn (device: *gpu.Device, typ: gpu.ErrorType, message: [*:0]const u8) callconv(.Inline) void);
assertDecl(T, "deviceLoseForTesting", fn (device: *gpu.Device) callconv(.Inline) void);
assertDecl(T, "devicePopErrorScope", fn (device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) callconv(.Inline) bool);
assertDecl(T, "devicePopErrorScope", fn (device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) callconv(.Inline) bool);
assertDecl(T, "devicePushErrorScope", fn (device: *gpu.Device, filter: gpu.ErrorFilter) callconv(.Inline) void);
assertDecl(T, "deviceSetDeviceLostCallback", fn (device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceSetDeviceLostCallback", fn (device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceSetLabel", fn (device: *gpu.Device, label: [*:0]const u8) callconv(.Inline) void);
assertDecl(T, "deviceSetLoggingCallback", fn (device: *gpu.Device, callback: gpu.LoggingCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceSetUncapturedErrorCallback", fn (device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceSetLoggingCallback", fn (device: *gpu.Device, callback: gpu.LoggingCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceSetUncapturedErrorCallback", fn (device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "deviceTick", fn (device: *gpu.Device) callconv(.Inline) void);
assertDecl(T, "deviceReference", fn (device: *gpu.Device) callconv(.Inline) void);
assertDecl(T, "deviceRelease", fn (device: *gpu.Device) callconv(.Inline) void);
@ -120,7 +120,7 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "externalTextureReference", fn (external_texture: *gpu.ExternalTexture) callconv(.Inline) void);
assertDecl(T, "externalTextureRelease", fn (external_texture: *gpu.ExternalTexture) callconv(.Inline) void);
assertDecl(T, "instanceCreateSurface", fn (instance: *gpu.Instance, descriptor: *const gpu.Surface.Descriptor) callconv(.Inline) *gpu.Surface);
assertDecl(T, "instanceRequestAdapter", fn (instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "instanceRequestAdapter", fn (instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "instanceReference", fn (instance: *gpu.Instance) callconv(.Inline) void);
assertDecl(T, "instanceRelease", fn (instance: *gpu.Instance) callconv(.Inline) void);
assertDecl(T, "pipelineLayoutSetLabel", fn (pipeline_layout: *gpu.PipelineLayout, label: [*:0]const u8) callconv(.Inline) void);
@ -133,7 +133,7 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "querySetReference", fn (query_set: *gpu.QuerySet) callconv(.Inline) void);
assertDecl(T, "querySetRelease", fn (query_set: *gpu.QuerySet) callconv(.Inline) void);
assertDecl(T, "queueCopyTextureForBrowser", fn (queue: *gpu.Queue, source: *const gpu.ImageCopyTexture, destination: *const gpu.ImageCopyTexture, copy_size: *const gpu.Extent3D, options: *const gpu.CopyTextureForBrowserOptions) callconv(.Inline) void);
assertDecl(T, "queueOnSubmittedWorkDone", fn (queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "queueOnSubmittedWorkDone", fn (queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "queueSetLabel", fn (queue: *gpu.Queue, label: [*:0]const u8) callconv(.Inline) void);
assertDecl(T, "queueSubmit", fn (queue: *gpu.Queue, command_count: u32, commands: [*]*gpu.CommandBuffer) callconv(.Inline) void);
assertDecl(T, "queueWriteBuffer", fn (queue: *gpu.Queue, buffer: *gpu.Buffer, buffer_offset: u64, data: *anyopaque, size: usize) callconv(.Inline) void);
@ -187,7 +187,7 @@ pub fn Interface(comptime T: type) type {
assertDecl(T, "samplerSetLabel", fn (sampler: *gpu.Sampler, label: [*:0]const u8) callconv(.Inline) void);
assertDecl(T, "samplerReference", fn (sampler: *gpu.Sampler) callconv(.Inline) void);
assertDecl(T, "samplerRelease", fn (sampler: *gpu.Sampler) callconv(.Inline) void);
assertDecl(T, "shaderModuleGetCompilationInfo", fn (shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: *anyopaque) callconv(.Inline) void);
assertDecl(T, "shaderModuleGetCompilationInfo", fn (shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: ?*anyopaque) callconv(.Inline) void);
assertDecl(T, "shaderModuleSetLabel", fn (shader_module: *gpu.ShaderModule, label: [*:0]const u8) callconv(.Inline) void);
assertDecl(T, "shaderModuleReference", fn (shader_module: *gpu.ShaderModule) callconv(.Inline) void);
assertDecl(T, "shaderModuleRelease", fn (shader_module: *gpu.ShaderModule) callconv(.Inline) void);
@ -264,7 +264,7 @@ pub fn Export(comptime T: type) type {
// NOTE: descriptor is nullable, see https://bugs.chromium.org/p/dawn/issues/detail?id=1502
// WGPU_EXPORT void wgpuAdapterRequestDevice(WGPUAdapter adapter, WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceCallback callback, void * userdata);
export fn wgpuAdapterRequestDevice(adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: *anyopaque) void {
export fn wgpuAdapterRequestDevice(adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: ?*anyopaque) void {
T.adapterRequestDevice(adapter, descriptor, callback, userdata);
}
@ -336,7 +336,7 @@ pub fn Export(comptime T: type) type {
// TODO: Zig cannot currently export a packed struct gpu.MapModeFlags, so we use a u32 for
// now.
// WGPU_EXPORT void wgpuBufferMapAsync(WGPUBuffer buffer, WGPUMapModeFlags mode, size_t offset, size_t size, WGPUBufferMapCallback callback, void * userdata);
export fn wgpuBufferMapAsync(buffer: *gpu.Buffer, mode: u32, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: *anyopaque) void {
export fn wgpuBufferMapAsync(buffer: *gpu.Buffer, mode: u32, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: ?*anyopaque) void {
T.bufferMapAsync(buffer, @bitCast(gpu.MapModeFlags, mode), offset, size, callback, userdata);
}
@ -576,7 +576,7 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT void wgpuDeviceCreateComputePipelineAsync(WGPUDevice device, WGPUComputePipelineDescriptor const * descriptor, WGPUCreateComputePipelineAsyncCallback callback, void * userdata);
export fn wgpuDeviceCreateComputePipelineAsync(device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: *anyopaque) void {
export fn wgpuDeviceCreateComputePipelineAsync(device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: ?*anyopaque) void {
T.deviceCreateComputePipelineAsync(device, descriptor, callback, userdata);
}
@ -616,7 +616,7 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT void wgpuDeviceCreateRenderPipelineAsync(WGPUDevice device, WGPURenderPipelineDescriptor const * descriptor, WGPUCreateRenderPipelineAsyncCallback callback, void * userdata);
export fn wgpuDeviceCreateRenderPipelineAsync(device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: *anyopaque) void {
export fn wgpuDeviceCreateRenderPipelineAsync(device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: ?*anyopaque) void {
T.deviceCreateRenderPipelineAsync(device, descriptor, callback, userdata);
}
@ -676,7 +676,7 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT bool wgpuDevicePopErrorScope(WGPUDevice device, WGPUErrorCallback callback, void * userdata);
export fn wgpuDevicePopErrorScope(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) bool {
export fn wgpuDevicePopErrorScope(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) bool {
return T.devicePopErrorScope(device, callback, userdata);
}
@ -686,7 +686,7 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT void wgpuDeviceSetDeviceLostCallback(WGPUDevice device, WGPUDeviceLostCallback callback, void * userdata);
export fn wgpuDeviceSetDeviceLostCallback(device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: *anyopaque) void {
export fn wgpuDeviceSetDeviceLostCallback(device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: ?*anyopaque) void {
T.deviceSetDeviceLostCallback(device, callback, userdata);
}
@ -696,12 +696,12 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT void wgpuDeviceSetLoggingCallback(WGPUDevice device, WGPULoggingCallback callback, void * userdata);
export fn wgpuDeviceSetLoggingCallback(device: *gpu.Device, callback: gpu.LoggingCallback, userdata: *anyopaque) void {
export fn wgpuDeviceSetLoggingCallback(device: *gpu.Device, callback: gpu.LoggingCallback, userdata: ?*anyopaque) void {
T.deviceSetLoggingCallback(device, callback, userdata);
}
// WGPU_EXPORT void wgpuDeviceSetUncapturedErrorCallback(WGPUDevice device, WGPUErrorCallback callback, void * userdata);
export fn wgpuDeviceSetUncapturedErrorCallback(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) void {
export fn wgpuDeviceSetUncapturedErrorCallback(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) void {
T.deviceSetUncapturedErrorCallback(device, callback, userdata);
}
@ -746,7 +746,7 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT void wgpuInstanceRequestAdapter(WGPUInstance instance, WGPURequestAdapterOptions const * options, WGPURequestAdapterCallback callback, void * userdata);
export fn wgpuInstanceRequestAdapter(instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: *anyopaque) void {
export fn wgpuInstanceRequestAdapter(instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: ?*anyopaque) void {
T.instanceRequestAdapter(instance, options, callback, userdata);
}
@ -811,7 +811,7 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT void wgpuQueueOnSubmittedWorkDone(WGPUQueue queue, uint64_t signalValue, WGPUQueueWorkDoneCallback callback, void * userdata);
export fn wgpuQueueOnSubmittedWorkDone(queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: *anyopaque) void {
export fn wgpuQueueOnSubmittedWorkDone(queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: ?*anyopaque) void {
T.queueOnSubmittedWorkDone(queue, signal_value, callback, userdata);
}
@ -1081,7 +1081,7 @@ pub fn Export(comptime T: type) type {
}
// WGPU_EXPORT void wgpuShaderModuleGetCompilationInfo(WGPUShaderModule shaderModule, WGPUCompilationInfoCallback callback, void * userdata);
export fn wgpuShaderModuleGetCompilationInfo(shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: *anyopaque) void {
export fn wgpuShaderModuleGetCompilationInfo(shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: ?*anyopaque) void {
T.shaderModuleGetCompilationInfo(shader_module, callback, userdata);
}
@ -1262,7 +1262,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn adapterRequestDevice(adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: *anyopaque) void {
pub inline fn adapterRequestDevice(adapter: *gpu.Adapter, descriptor: ?*const gpu.Device.Descriptor, callback: gpu.RequestDeviceCallback, userdata: ?*anyopaque) void {
_ = adapter;
_ = descriptor;
_ = callback;
@ -1343,7 +1343,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn bufferMapAsync(buffer: *gpu.Buffer, mode: gpu.MapModeFlags, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: *anyopaque) void {
pub inline fn bufferMapAsync(buffer: *gpu.Buffer, mode: gpu.MapModeFlags, offset: usize, size: usize, callback: gpu.Buffer.MapCallback, userdata: ?*anyopaque) void {
_ = buffer;
_ = mode;
_ = offset;
@ -1650,7 +1650,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn deviceCreateComputePipelineAsync(device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: *anyopaque) void {
pub inline fn deviceCreateComputePipelineAsync(device: *gpu.Device, descriptor: *const gpu.ComputePipeline.Descriptor, callback: gpu.CreateComputePipelineAsyncCallback, userdata: ?*anyopaque) void {
_ = device;
_ = descriptor;
_ = callback;
@ -1698,7 +1698,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn deviceCreateRenderPipelineAsync(device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: *anyopaque) void {
pub inline fn deviceCreateRenderPipelineAsync(device: *gpu.Device, descriptor: *const gpu.RenderPipeline.Descriptor, callback: gpu.CreateRenderPipelineAsyncCallback, userdata: ?*anyopaque) void {
_ = device;
_ = descriptor;
_ = callback;
@ -1771,7 +1771,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn devicePopErrorScope(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) bool {
pub inline fn devicePopErrorScope(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) bool {
_ = device;
_ = callback;
_ = userdata;
@ -1784,7 +1784,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn deviceSetDeviceLostCallback(device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: *anyopaque) void {
pub inline fn deviceSetDeviceLostCallback(device: *gpu.Device, callback: gpu.Device.LostCallback, userdata: ?*anyopaque) void {
_ = device;
_ = callback;
_ = userdata;
@ -1797,14 +1797,14 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn deviceSetLoggingCallback(device: *gpu.Device, callback: gpu.LoggingCallback, userdata: *anyopaque) void {
pub inline fn deviceSetLoggingCallback(device: *gpu.Device, callback: gpu.LoggingCallback, userdata: ?*anyopaque) void {
_ = device;
_ = callback;
_ = userdata;
unreachable;
}
pub inline fn deviceSetUncapturedErrorCallback(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: *anyopaque) void {
pub inline fn deviceSetUncapturedErrorCallback(device: *gpu.Device, callback: gpu.ErrorCallback, userdata: ?*anyopaque) void {
_ = device;
_ = callback;
_ = userdata;
@ -1853,7 +1853,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn instanceRequestAdapter(instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: *anyopaque) void {
pub inline fn instanceRequestAdapter(instance: *gpu.Instance, options: *const gpu.RequestAdapterOptions, callback: gpu.RequestAdapterCallback, userdata: ?*anyopaque) void {
_ = instance;
_ = options;
_ = callback;
@ -1927,7 +1927,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn queueOnSubmittedWorkDone(queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: *anyopaque) void {
pub inline fn queueOnSubmittedWorkDone(queue: *gpu.Queue, signal_value: u64, callback: gpu.Queue.WorkDoneCallback, userdata: ?*anyopaque) void {
_ = queue;
_ = signal_value;
_ = callback;
@ -2291,7 +2291,7 @@ pub const StubInterface = Interface(struct {
unreachable;
}
pub inline fn shaderModuleGetCompilationInfo(shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: *anyopaque) void {
pub inline fn shaderModuleGetCompilationInfo(shader_module: *gpu.ShaderModule, callback: gpu.CompilationInfoCallback, userdata: ?*anyopaque) void {
_ = shader_module;
_ = callback;
_ = userdata;

View file

@ -10,7 +10,7 @@ const Impl = @import("interface.zig").Impl;
pub const Queue = opaque {
pub const WorkDoneCallback = fn (
status: WorkDoneStatus,
userdata: *anyopaque,
userdata: ?*anyopaque,
) callconv(.C) void;
pub const WorkDoneStatus = enum(u32) {
@ -29,7 +29,7 @@ pub const Queue = opaque {
Impl.queueCopyTextureForBrowser(queue, source, destination, copy_size, options);
}
pub inline fn onSubmittedWorkDone(queue: *Queue, signal_value: u64, callback: Queue.WorkDoneCallback, userdata: *anyopaque) void {
pub inline fn onSubmittedWorkDone(queue: *Queue, signal_value: u64, callback: Queue.WorkDoneCallback, userdata: ?*anyopaque) void {
Impl.queueOnSubmittedWorkDone(queue, signal_value, callback, userdata);
}

View file

@ -19,7 +19,7 @@ pub const ShaderModule = opaque {
source: [*:0]const u8,
};
pub inline fn getCompilationInfo(shader_module: *ShaderModule, callback: CompilationInfoCallback, userdata: *anyopaque) void {
pub inline fn getCompilationInfo(shader_module: *ShaderModule, callback: CompilationInfoCallback, userdata: ?*anyopaque) void {
Impl.shaderModuleGetCompilationInfo(shader_module, callback, userdata);
}