From f7df77e2d24d4666f9481e92d8e0b2dae4802235 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sun, 24 Jul 2022 14:45:12 -0700 Subject: [PATCH] gpu: convert Adapter from enum(usize) to *opaque Signed-off-by: Stephen Gutekanst --- gpu/src/adapter.zig | 61 +++++++++++++++++++++------------------------ 1 file changed, 28 insertions(+), 33 deletions(-) diff --git a/gpu/src/adapter.zig b/gpu/src/adapter.zig index cf4437b1..b4404c23 100644 --- a/gpu/src/adapter.zig +++ b/gpu/src/adapter.zig @@ -1,41 +1,36 @@ const testing = @import("std").testing; 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 none: Adapter = @intToEnum(Adapter, 0); +pub const AdapterType = enum(u32) { + discrete_gpu, + integrated_gpu, + cpu, + unknown, - 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, - }; + pub fn name(t: AdapterType) []const u8 { + return switch (t) { + .discrete_gpu => "Discrete GPU", + .integrated_gpu => "Integrated GPU", + .cpu => "CPU", + .unknown => "Unknown", + }; + } }; -test "Adapter.Type name" { - try testing.expectEqualStrings("Discrete GPU", Adapter.Type.discrete_gpu.name()); +pub const AdapterProperties = 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: AdapterType, + backend_type: AdapterType, +}; + +test "AdapterType name" { + try testing.expectEqualStrings("Discrete GPU", AdapterType.discrete_gpu.name()); }