gpu: move callbacks to separate file

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-07-29 23:37:11 -07:00 committed by Stephen Gutekanst
parent 2e445affe2
commit e6f3d3c2f0
7 changed files with 65 additions and 51 deletions

View file

@ -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());
}

57
gpu/src/callbacks.zig Normal file
View file

@ -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;

View file

@ -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 {

View file

@ -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;

View file

@ -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,

View file

@ -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 {

View file

@ -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,