From f1030f60d74dda6d529c83c4227998e24f64d785 Mon Sep 17 00:00:00 2001 From: Hugh Sanderson Date: Mon, 16 Sep 2024 20:58:24 +0800 Subject: [PATCH] Allow command-line specification of metal renderer --- project/ToolkitBuild.xml | 1 + project/src/common/ExternalInterface.cpp | 4 ++ project/src/sdl2/SDL2Stage.cpp | 15 +++++ project/toolkit/sdl/files.xml | 84 +----------------------- 4 files changed, 21 insertions(+), 83 deletions(-) diff --git a/project/ToolkitBuild.xml b/project/ToolkitBuild.xml index a54ff86c6..c6bb83515 100644 --- a/project/ToolkitBuild.xml +++ b/project/ToolkitBuild.xml @@ -26,6 +26,7 @@ + diff --git a/project/src/common/ExternalInterface.cpp b/project/src/common/ExternalInterface.cpp index 59c3d90cd..893a73e66 100644 --- a/project/src/common/ExternalInterface.cpp +++ b/project/src/common/ExternalInterface.cpp @@ -805,6 +805,10 @@ void nme_set_renderer(HxString inRenderer) if (std::string(inRenderer.c_str())=="opengl") nmeEglMode = false; #endif + #ifdef NME_SDL3 + extern std::string nmeRenderer; + nmeRenderer = inRenderer.c_str(); + #endif } DEFINE_PRIME1v(nme_set_renderer); diff --git a/project/src/sdl2/SDL2Stage.cpp b/project/src/sdl2/SDL2Stage.cpp index 7c7436f36..942030273 100644 --- a/project/src/sdl2/SDL2Stage.cpp +++ b/project/src/sdl2/SDL2Stage.cpp @@ -50,6 +50,9 @@ SDL_Surface *SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth } typedef float MousePosType; + +std::string nmeRenderer; + #else typedef int MousePosType; #endif @@ -2258,6 +2261,18 @@ void CreateMainFrame(FrameCreationCallback inOnFrame, int inWidth, int inHeight, #if defined(NME_OGL) && defined(NME_METAL) nmeOpenglRenderer = !(inFlags & wfHardwareMetal); bool hw = (inFlags & wfHardware) != 0; + #ifdef NME_SDL3 + if (nmeRenderer=="opengl") + { + hw = true; + nmeOpenglRenderer = true; + } + else if (nmeRenderer=="metal") + { + hw = true; + nmeOpenglRenderer = false; + } + #endif bool opengl = hw && nmeOpenglRenderer; bool metal = hw && !nmeOpenglRenderer; #elif defined(NME_OGL) diff --git a/project/toolkit/sdl/files.xml b/project/toolkit/sdl/files.xml index 2116e5780..a3fa8b5e9 100644 --- a/project/toolkit/sdl/files.xml +++ b/project/toolkit/sdl/files.xml @@ -16,89 +16,7 @@ + -->