From 1b4f1dba862414a667b6ac8b1b6f4d7cee74d3c4 Mon Sep 17 00:00:00 2001 From: superp00t Date: Mon, 22 Jul 2024 01:21:08 -0400 Subject: [PATCH] fix(gx): simplified gx device creation according to api enum --- build.zig | 2 +- src/gx/CGxDevice.cpp | 3 ++- src/gx/Device.cpp | 60 +++++++++++++++++++++++--------------------- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/build.zig b/build.zig index b4730e7..c7887f7 100644 --- a/build.zig +++ b/build.zig @@ -122,7 +122,7 @@ pub fn build(b: *std.Build) void { // GLSDL const build_glsdl_option = b.option(bool, "WHOA_BUILD_GLSDL", "Enable"); - switch (target.result.os) { + switch (t.os.tag) { .windows => { // SDL is off by default build_glsdl = build_glsdl_option orelse false; diff --git a/src/gx/CGxDevice.cpp b/src/gx/CGxDevice.cpp index 404637e..9017624 100644 --- a/src/gx/CGxDevice.cpp +++ b/src/gx/CGxDevice.cpp @@ -5,6 +5,7 @@ #include "util/SFile.hpp" #include #include +#include #include #include #include @@ -14,7 +15,7 @@ #include "gx/d3d/CGxDeviceD3d.hpp" #endif -#if defined(WHOA_SYSTEM_LINUX) || defined(WHOA_SYSTEM_WIN) +#if defined(WHOA_BUILD_GLSDL) #include "gx/glsdl/CGxDeviceGLSDL.hpp" #endif diff --git a/src/gx/Device.cpp b/src/gx/Device.cpp index 63a7341..7eb4f13 100644 --- a/src/gx/Device.cpp +++ b/src/gx/Device.cpp @@ -7,37 +7,39 @@ CGxDevice* g_theGxDevicePtr = nullptr; CGxDevice* GxDevCreate(EGxApi api, int32_t (*windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam), const CGxFormat& format) { CGxDevice* device; - #if defined(WHOA_SYSTEM_WIN) - if (api == GxApi_OpenGl) { - device = CGxDevice::NewOpenGl(); - } else if (api == GxApi_D3d9) { - device = CGxDevice::NewD3d(); - } else if (api == GxApi_D3d9Ex) { - device = CGxDevice::NewD3d9Ex(); - } else if (api == GxApi_GLSDL) { - device = CGxDevice::NewGLSDL(); - } else { - // Error - } - #endif + switch (api) { + case GxApi_OpenGl: + device = CGxDevice::NewOpenGl(); - #if defined(WHOA_SYSTEM_MAC) - if (api == GxApi_OpenGl) { - device = CGxDevice::NewOpenGl(); - } else if (api == GxApi_GLL) { - device = CGxDevice::NewGLL(); - } else { - // Error - } - #endif +#if defined(WHOA_SYSTEM_WIN) + case GxApi_D3d9: + device = CGxDevice::NewD3d(); + break; + case GxApi_D3d9Ex: + device = CGxDevice::NewD3d9Ex(); + break; + case GxApi_D3d10: + case GxApi_D3d11: + // Error + break; +#endif - #if defined(WHOA_SYSTEM_LINUX) - if (api == GxApi_GLSDL) { - device = CGxDevice::NewGLSDL(); - } else { - // Error - } - #endif +#if defined(WHOA_SYSTEM_MAC) + case GxApi_GLL: + device = CGxDevice::NewGLL(); + break; +#endif + +#if defined(WHOA_BUILD_GLSDL) + case GxApi_GLSDL: + device = CGxDevice::NewGLSDL(); + break; +#endif + + default: + // Error + break; + } g_theGxDevicePtr = device;