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 @@ + -->