diff --git a/gpu/src/adapter.zig b/gpu/src/adapter.zig index c86e661d..603a632a 100644 --- a/gpu/src/adapter.zig +++ b/gpu/src/adapter.zig @@ -5,6 +5,7 @@ const DeviceDescriptor = @import("device.zig").DeviceDescriptor; const FeatureName = @import("types.zig").FeatureName; const SupportedLimits = @import("types.zig").SupportedLimits; const RequestDeviceStatus = @import("types.zig").RequestDeviceStatus; +const RequestDeviceCallback = @import("callbacks.zig").RequestDeviceCallback; const Impl = @import("interface.zig").Impl; pub const Adapter = opaque { @@ -70,13 +71,6 @@ pub const Adapter = opaque { } }; -pub const RequestDeviceCallback = fn ( - status: RequestDeviceStatus, - device: *Device, - message: ?[*:0]const u8, - userdata: *anyopaque, -) callconv(.C) void; - test "Adapter.Type name" { try testing.expectEqualStrings("Discrete GPU", Adapter.Type.discrete_gpu.name()); } diff --git a/gpu/src/callbacks.zig b/gpu/src/callbacks.zig new file mode 100644 index 00000000..f9983f51 --- /dev/null +++ b/gpu/src/callbacks.zig @@ -0,0 +1,57 @@ +const CompilationInfoRequestStatus = @import("types.zig").CompilationInfoRequestStatus; +const CompilationInfo = @import("types.zig").CompilationInfo; +const ErrorType = @import("types.zig").ErrorType; +const LoggingType = @import("types.zig").LoggingType; +const RequestDeviceStatus = @import("types.zig").RequestDeviceStatus; +const RequestAdapterStatus = @import("types.zig").RequestAdapterStatus; +const CreatePipelineAsyncStatus = @import("types.zig").CreatePipelineAsyncStatus; +const Device = @import("device.zig").Device; +const Adapter = @import("adapter.zig").Adapter; +const ComputePipeline = @import("compute_pipeline.zig").ComputePipeline; +const RenderPipeline = @import("render_pipeline.zig").RenderPipeline; + +pub const CompilationInfoCallback = fn ( + status: CompilationInfoRequestStatus, + compilation_info: *const CompilationInfo, + userdata: *anyopaque, +) callconv(.C) void; + +pub const ErrorCallback = fn ( + typ: ErrorType, + message: [*:0]const u8, + userdata: *anyopaque, +) callconv(.C) void; + +pub const LoggingCallback = fn ( + typ: LoggingType, + message: [*:0]const u8, + userdata: *anyopaque, +) callconv(.C) void; + +pub const RequestDeviceCallback = fn ( + status: RequestDeviceStatus, + device: *Device, + message: ?[*:0]const u8, + userdata: *anyopaque, +) callconv(.C) void; + +pub const RequestAdapterCallback = fn ( + status: RequestAdapterStatus, + adapter: *Adapter, + message: ?[*:0]const u8, + userdata: *anyopaque, +) callconv(.C) void; + +pub const CreateComputePipelineAsyncCallback = fn ( + status: CreatePipelineAsyncStatus, + compute_pipeline: *ComputePipeline, + message: [*:0]const u8, + userdata: *anyopaque, +) callconv(.C) void; + +pub const CreateRenderPipelineAsyncCallback = fn ( + status: CreatePipelineAsyncStatus, + pipeline: *RenderPipeline, + message: [*:0]const u8, + userdata: *anyopaque, +) callconv(.C) void; diff --git a/gpu/src/device.zig b/gpu/src/device.zig index fa476065..19ce7da5 100644 --- a/gpu/src/device.zig +++ b/gpu/src/device.zig @@ -34,10 +34,10 @@ const RequiredLimits = @import("types.zig").RequiredLimits; const SupportedLimits = @import("types.zig").SupportedLimits; const ErrorType = @import("types.zig").ErrorType; const ErrorFilter = @import("types.zig").ErrorFilter; -const ErrorCallback = @import("types.zig").ErrorCallback; -const LoggingCallback = @import("types.zig").LoggingCallback; -const CreateComputePipelineAsyncCallback = @import("main.zig").CreateComputePipelineAsyncCallback; -const CreateRenderPipelineAsyncCallback = @import("main.zig").CreateRenderPipelineAsyncCallback; +const LoggingCallback = @import("callbacks.zig").LoggingCallback; +const ErrorCallback = @import("callbacks.zig").ErrorCallback; +const CreateComputePipelineAsyncCallback = @import("callbacks.zig").CreateComputePipelineAsyncCallback; +const CreateRenderPipelineAsyncCallback = @import("callbacks.zig").CreateRenderPipelineAsyncCallback; const Impl = @import("interface.zig").Impl; pub const Device = opaque { diff --git a/gpu/src/instance.zig b/gpu/src/instance.zig index 8c6ace3c..466a182e 100644 --- a/gpu/src/instance.zig +++ b/gpu/src/instance.zig @@ -4,6 +4,7 @@ const Surface = @import("surface.zig").Surface; const SurfaceDescriptor = @import("surface.zig").SurfaceDescriptor; const Adapter = @import("adapter.zig").Adapter; const RequestAdapterOptions = @import("main.zig").RequestAdapterOptions; +const RequestAdapterCallback = @import("callbacks.zig").RequestAdapterCallback; const Impl = @import("interface.zig").Impl; pub const Instance = opaque { @@ -27,10 +28,3 @@ pub const Instance = opaque { Impl.instanceRelease(instance); } }; - -pub const RequestAdapterCallback = fn ( - status: RequestAdapterStatus, - adapter: *Adapter, - message: ?[*:0]const u8, - userdata: *anyopaque, -) callconv(.C) void; diff --git a/gpu/src/main.zig b/gpu/src/main.zig index 2007fafc..f22665af 100644 --- a/gpu/src/main.zig +++ b/gpu/src/main.zig @@ -12,6 +12,7 @@ pub usingnamespace @import("adapter.zig"); pub usingnamespace @import("bind_group.zig"); pub usingnamespace @import("bind_group_layout.zig"); pub usingnamespace @import("buffer.zig"); +pub usingnamespace @import("callbacks.zig"); pub usingnamespace @import("command_buffer.zig"); pub usingnamespace @import("command_encoder.zig"); pub usingnamespace @import("compute_pass_encoder.zig"); @@ -52,20 +53,6 @@ const interface = @import("interface.zig"); /// cast to a `fn (...) callconv(.C) T` before use. pub const Proc = *anyopaque; -pub const CreateComputePipelineAsyncCallback = fn ( - status: types.CreatePipelineAsyncStatus, - compute_pipeline: *compute_pipeline.ComputePipeline, - message: [*:0]const u8, - userdata: *anyopaque, -) callconv(.C) void; - -pub const CreateRenderPipelineAsyncCallback = fn ( - status: types.CreatePipelineAsyncStatus, - pipeline: *render_pipeline.RenderPipeline, - message: [*:0]const u8, - userdata: *anyopaque, -) callconv(.C) void; - pub const ComputePassTimestampWrite = extern struct { query_set: *query_set.QuerySet, query_index: u32, diff --git a/gpu/src/shader_module.zig b/gpu/src/shader_module.zig index 7d59697a..8f334050 100644 --- a/gpu/src/shader_module.zig +++ b/gpu/src/shader_module.zig @@ -1,5 +1,5 @@ const ChainedStruct = @import("types.zig").ChainedStruct; -const CompilationInfoCallback = @import("types.zig").CompilationInfoCallback; +const CompilationInfoCallback = @import("callbacks.zig").CompilationInfoCallback; const Impl = @import("interface.zig").Impl; pub const ShaderModule = opaque { diff --git a/gpu/src/types.zig b/gpu/src/types.zig index f0a49fe5..049f5920 100644 --- a/gpu/src/types.zig +++ b/gpu/src/types.zig @@ -11,24 +11,6 @@ const ShaderModule = @import("shader_module.zig").ShaderModule; const limit_u32_undefined = @import("main.zig").limit_u32_undefined; const limit_u64_undefined = @import("main.zig").limit_u64_undefined; -pub const CompilationInfoCallback = fn ( - status: CompilationInfoRequestStatus, - compilation_info: *const CompilationInfo, - userdata: *anyopaque, -) callconv(.C) void; - -pub const ErrorCallback = fn ( - typ: ErrorType, - message: [*:0]const u8, - userdata: *anyopaque, -) callconv(.C) void; - -pub const LoggingCallback = fn ( - typ: LoggingType, - message: [*:0]const u8, - userdata: *anyopaque, -) callconv(.C) void; - pub const AlphaMode = enum(u32) { premultiplied = 0x00000000, unpremultiplied = 0x00000001,