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 typeName(t: Type) []const u8 { pub fn name(t: Type) []const u8 {
return switch (t) { return switch (t) {
.discrete_gpu => "Discrete GPU", .discrete_gpu => "Discrete GPU",
.integrated_gpu => "Integrated GPU", .integrated_gpu => "Integrated GPU",
.cpu => "CPU", .cpu => "CPU",
.unknown => "Unknown", .unknown => "Unknown",
}; };
}
};
test "Adapter.Type name" {
try testing.expectEqualStrings("Discrete GPU", Type.discrete_gpu.name());
} }

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,9 +14,8 @@ 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",
@ -25,7 +26,8 @@ pub fn backendTypeName(t: BackendType) []const u8 {
.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));
}