gpu: make enum namers methods

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-07-11 06:38:39 -07:00 committed by Stephen Gutekanst
parent 963f06261f
commit 089eb3bdda
2 changed files with 36 additions and 20 deletions

View file

@ -1,3 +1,5 @@
const testing = @import("std").testing;
ptr: *anyopaque, ptr: *anyopaque,
pub const Type = enum(u32) { pub const Type = enum(u32) {
@ -5,13 +7,17 @@ pub const Type = enum(u32) {
integrated_gpu, integrated_gpu,
cpu, cpu,
unknown, unknown,
pub fn name(t: Type) []const u8 {
return switch (t) {
.discrete_gpu => "Discrete GPU",
.integrated_gpu => "Integrated GPU",
.cpu => "CPU",
.unknown => "Unknown",
};
}
}; };
pub fn typeName(t: Type) []const u8 { test "Adapter.Type name" {
return switch (t) { try testing.expectEqualStrings("Discrete GPU", Type.discrete_gpu.name());
.discrete_gpu => "Discrete GPU",
.integrated_gpu => "Integrated GPU",
.cpu => "CPU",
.unknown => "Unknown",
};
} }

View file

@ -1,3 +1,5 @@
const testing = @import("std").testing;
pub const AlphaMode = enum(u32) { pub const AlphaMode = enum(u32) {
premultiplied = 0x00000000, premultiplied = 0x00000000,
unpremultiplied = 0x00000001, unpremultiplied = 0x00000001,
@ -12,20 +14,20 @@ pub const BackendType = enum(u32) {
vulkan, vulkan,
opengl, opengl,
opengles, opengles,
};
pub fn backendTypeName(t: BackendType) []const u8 { pub fn name(t: BackendType) []const u8 {
return switch (t) { return switch (t) {
.nul => "Null", .nul => "Null",
.webgpu => "WebGPU", .webgpu => "WebGPU",
.d3d11 => "D3D11", .d3d11 => "D3D11",
.d3d12 => "D3D12", .d3d12 => "D3D12",
.metal => "Metal", .metal => "Metal",
.vulkan => "Vulkan", .vulkan => "Vulkan",
.opengl => "OpenGL", .opengl => "OpenGL",
.opengles => "OpenGLES", .opengles => "OpenGLES",
}; };
} }
};
pub const BlendFactor = enum(u32) { pub const BlendFactor = enum(u32) {
zero = 0x00000000, zero = 0x00000000,
@ -94,3 +96,11 @@ pub const CullMode = enum(u32) {
front = 0x00000001, front = 0x00000001,
back = 0x00000002, back = 0x00000002,
}; };
test "BackendType name" {
try testing.expectEqualStrings("Vulkan", BackendType.vulkan.name());
}
test "enum name" {
try testing.expectEqualStrings("front", @tagName(CullMode.front));
}