From a468c51ad4fb88728f07d8f5f9be66c9a37c115e Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sat, 30 Jul 2022 23:43:16 -0700 Subject: [PATCH] gpu: correct nullability of userdata pointers Signed-off-by: Stephen Gutekanst --- gpu/src/adapter.zig | 2 +- gpu/src/buffer.zig | 4 +-- gpu/src/callbacks.zig | 14 ++++----- gpu/src/dawn_impl.zig | 22 ++++++------- gpu/src/device.zig | 14 ++++----- gpu/src/instance.zig | 2 +- gpu/src/interface.zig | 66 +++++++++++++++++++-------------------- gpu/src/queue.zig | 4 +-- gpu/src/shader_module.zig | 2 +- 9 files changed, 65 insertions(+), 65 deletions(-) diff --git a/gpu/src/adapter.zig b/gpu/src/adapter.zig index 856daecd..640ebb8d 100644 --- a/gpu/src/adapter.zig +++ b/gpu/src/adapter.zig @@ -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); } diff --git a/gpu/src/buffer.zig b/gpu/src/buffer.zig index 657a363c..c61770d1 100644 --- a/gpu/src/buffer.zig +++ b/gpu/src/buffer.zig @@ -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); } diff --git a/gpu/src/callbacks.zig b/gpu/src/callbacks.zig index f9983f51..1e64d294 100644 --- a/gpu/src/callbacks.zig +++ b/gpu/src/callbacks.zig @@ -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; diff --git a/gpu/src/dawn_impl.zig b/gpu/src/dawn_impl.zig index 76826a69..5e7d9535 100644 --- a/gpu/src/dawn_impl.zig +++ b/gpu/src/dawn_impl.zig @@ -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), diff --git a/gpu/src/device.zig b/gpu/src/device.zig index 049e4c6c..c047fd78 100644 --- a/gpu/src/device.zig +++ b/gpu/src/device.zig @@ -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); } diff --git a/gpu/src/instance.zig b/gpu/src/instance.zig index 8dfd814d..7d2138bf 100644 --- a/gpu/src/instance.zig +++ b/gpu/src/instance.zig @@ -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); } diff --git a/gpu/src/interface.zig b/gpu/src/interface.zig index 912b7a01..00d2acf2 100644 --- a/gpu/src/interface.zig +++ b/gpu/src/interface.zig @@ -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; diff --git a/gpu/src/queue.zig b/gpu/src/queue.zig index 6eb69a6c..76bea83c 100644 --- a/gpu/src/queue.zig +++ b/gpu/src/queue.zig @@ -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); } diff --git a/gpu/src/shader_module.zig b/gpu/src/shader_module.zig index 124a4392..233fd228 100644 --- a/gpu/src/shader_module.zig +++ b/gpu/src/shader_module.zig @@ -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); }