gpu: make Adapter an enum with methods
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
35054ff938
commit
f343326184
3 changed files with 42 additions and 38 deletions
|
|
@ -1,36 +0,0 @@
|
||||||
const testing = @import("std").testing;
|
|
||||||
const ChainedStructOut = @import("types.zig").ChainedStructOut;
|
|
||||||
|
|
||||||
ptr: *anyopaque,
|
|
||||||
|
|
||||||
pub const Type = enum(u32) {
|
|
||||||
discrete_gpu,
|
|
||||||
integrated_gpu,
|
|
||||||
cpu,
|
|
||||||
unknown,
|
|
||||||
|
|
||||||
pub fn name(t: Type) []const u8 {
|
|
||||||
return switch (t) {
|
|
||||||
.discrete_gpu => "Discrete GPU",
|
|
||||||
.integrated_gpu => "Integrated GPU",
|
|
||||||
.cpu => "CPU",
|
|
||||||
.unknown => "Unknown",
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
pub const Properties = extern struct {
|
|
||||||
next_in_chain: *ChainedStructOut,
|
|
||||||
vendor_id: u32,
|
|
||||||
vendor_name: [*:0]const u8,
|
|
||||||
architecture: [*:0]const u8,
|
|
||||||
device_id: u32,
|
|
||||||
name: [*:0]const u8,
|
|
||||||
driver_description: [*:0]const u8,
|
|
||||||
adapter_type: Type,
|
|
||||||
backend_type: Type,
|
|
||||||
};
|
|
||||||
|
|
||||||
test "Adapter.Type name" {
|
|
||||||
try testing.expectEqualStrings("Discrete GPU", Type.discrete_gpu.name());
|
|
||||||
}
|
|
||||||
40
gpu/src/adapter.zig
Normal file
40
gpu/src/adapter.zig
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
const testing = @import("std").testing;
|
||||||
|
const ChainedStructOut = @import("types.zig").ChainedStructOut;
|
||||||
|
|
||||||
|
pub const Adapter = enum(usize) {
|
||||||
|
_,
|
||||||
|
|
||||||
|
pub const none: Adapter = @intToEnum(Adapter, 0);
|
||||||
|
|
||||||
|
pub const Type = enum(u32) {
|
||||||
|
discrete_gpu,
|
||||||
|
integrated_gpu,
|
||||||
|
cpu,
|
||||||
|
unknown,
|
||||||
|
|
||||||
|
pub fn name(t: Type) []const u8 {
|
||||||
|
return switch (t) {
|
||||||
|
.discrete_gpu => "Discrete GPU",
|
||||||
|
.integrated_gpu => "Integrated GPU",
|
||||||
|
.cpu => "CPU",
|
||||||
|
.unknown => "Unknown",
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
pub const Properties = extern struct {
|
||||||
|
next_in_chain: *ChainedStructOut,
|
||||||
|
vendor_id: u32,
|
||||||
|
vendor_name: [*:0]const u8,
|
||||||
|
architecture: [*:0]const u8,
|
||||||
|
device_id: u32,
|
||||||
|
name: [*:0]const u8,
|
||||||
|
driver_description: [*:0]const u8,
|
||||||
|
adapter_type: Type,
|
||||||
|
backend_type: Type,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
test "Adapter.Type name" {
|
||||||
|
try testing.expectEqualStrings("Discrete GPU", Adapter.Type.discrete_gpu.name());
|
||||||
|
}
|
||||||
|
|
@ -9,7 +9,7 @@ pub const stride_undefined = 0xffffffff;
|
||||||
pub const whole_map_size = std.math.maxInt(usize);
|
pub const whole_map_size = std.math.maxInt(usize);
|
||||||
pub const whole_size = 0xffffffffffffffff;
|
pub const whole_size = 0xffffffffffffffff;
|
||||||
|
|
||||||
pub const Adapter = @import("Adapter.zig");
|
pub const Adapter = @import("adapter.zig").Adapter;
|
||||||
pub const BindGroup = @import("BindGroup.zig");
|
pub const BindGroup = @import("BindGroup.zig");
|
||||||
pub const BindGroupLayout = @import("BindGroupLayout.zig");
|
pub const BindGroupLayout = @import("BindGroupLayout.zig");
|
||||||
pub const Buffer = @import("buffer.zig").Buffer;
|
pub const Buffer = @import("buffer.zig").Buffer;
|
||||||
|
|
@ -37,7 +37,7 @@ pub const TextureView = @import("TextureView.zig");
|
||||||
pub const AlphaMode = @import("types.zig").AlphaMode;
|
pub const AlphaMode = @import("types.zig").AlphaMode;
|
||||||
|
|
||||||
test {
|
test {
|
||||||
refAllDecls(@import("Adapter.zig"));
|
refAllDecls(@import("adapter.zig"));
|
||||||
refAllDecls(@import("BindGroup.zig"));
|
refAllDecls(@import("BindGroup.zig"));
|
||||||
refAllDecls(@import("BindGroupLayout.zig"));
|
refAllDecls(@import("BindGroupLayout.zig"));
|
||||||
refAllDecls(@import("buffer.zig"));
|
refAllDecls(@import("buffer.zig"));
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue