gpu: convert Adapter from enum(usize) to *opaque

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-07-24 14:45:12 -07:00 committed by Stephen Gutekanst
parent 311ea3f62c
commit f7df77e2d2

View file

@ -1,19 +1,15 @@
const testing = @import("std").testing; const testing = @import("std").testing;
const ChainedStructOut = @import("types.zig").ChainedStructOut; const ChainedStructOut = @import("types.zig").ChainedStructOut;
pub const Adapter = enum(usize) { pub const Adapter = *opaque {};
_,
// TODO: verify there is a use case for nullable value of this type. pub const AdapterType = enum(u32) {
pub const none: Adapter = @intToEnum(Adapter, 0);
pub const Type = enum(u32) {
discrete_gpu, discrete_gpu,
integrated_gpu, integrated_gpu,
cpu, cpu,
unknown, unknown,
pub fn name(t: Type) []const u8 { pub fn name(t: AdapterType) []const u8 {
return switch (t) { return switch (t) {
.discrete_gpu => "Discrete GPU", .discrete_gpu => "Discrete GPU",
.integrated_gpu => "Integrated GPU", .integrated_gpu => "Integrated GPU",
@ -21,9 +17,9 @@ pub const Adapter = enum(usize) {
.unknown => "Unknown", .unknown => "Unknown",
}; };
} }
}; };
pub const Properties = extern struct { pub const AdapterProperties = extern struct {
next_in_chain: *ChainedStructOut, next_in_chain: *ChainedStructOut,
vendor_id: u32, vendor_id: u32,
vendor_name: [*:0]const u8, vendor_name: [*:0]const u8,
@ -31,11 +27,10 @@ pub const Adapter = enum(usize) {
device_id: u32, device_id: u32,
name: [*:0]const u8, name: [*:0]const u8,
driver_description: [*:0]const u8, driver_description: [*:0]const u8,
adapter_type: Type, adapter_type: AdapterType,
backend_type: Type, backend_type: AdapterType,
};
}; };
test "Adapter.Type name" { test "AdapterType name" {
try testing.expectEqualStrings("Discrete GPU", Adapter.Type.discrete_gpu.name()); try testing.expectEqualStrings("Discrete GPU", AdapterType.discrete_gpu.name());
} }