diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 71eb59be0..b818cf5f7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -113,6 +113,13 @@ jobs: if: steps.vars.outputs.angle == '1' working-directory: angle run: 7z x angle-win-${{ steps.vars.outputs.arch }}.zip + - name: Delete Strawbery Perl + # https://github.com/actions/runner-images/issues/6627 + # In particular, this is not pretty, but even CMAKE_IGNORE_PREFIX_PATH + # cannot help in this case. Delete the whole folder! + run: | + rmdir /s /q C:\Strawberry + exit /b 0 - name: Configure run: cmake -Bbuild -Hmegasource -T v142 -A ${{ matrix.platform }} -DCMAKE_INSTALL_PREFIX=%CD%\install ${{ steps.vars.outputs.moredef }} - name: Install diff --git a/src/modules/filesystem/wrap_Filesystem.cpp b/src/modules/filesystem/wrap_Filesystem.cpp index c90d9495e..bce02af5a 100644 --- a/src/modules/filesystem/wrap_Filesystem.cpp +++ b/src/modules/filesystem/wrap_Filesystem.cpp @@ -866,9 +866,7 @@ static void replaceAll(std::string &str, const std::string &substr, const std::s int loader(lua_State *L) { std::string modulename = luax_checkstring(L, 1); - - if (modulename.find('/') != std::string::npos) - luax_markdeprecated(L, 2, "character in require string (forward slashes), use dots instead.", API_CUSTOM); + bool hasSlash = modulename.find('/') != std::string::npos; for (char &c : modulename) { @@ -884,6 +882,9 @@ int loader(lua_State *L) Filesystem::Info info = {}; if (inst->getInfo(element.c_str(), info) && info.type != Filesystem::FILETYPE_DIRECTORY) { + if (hasSlash) + luax_markdeprecated(L, 2, "character in require string (forward slashes), use dots instead.", API_CUSTOM); + lua_pop(L, 1); lua_pushstring(L, element.c_str()); return w_load(L); diff --git a/src/modules/graphics/Shader.cpp b/src/modules/graphics/Shader.cpp index 168846d72..17b4932af 100644 --- a/src/modules/graphics/Shader.cpp +++ b/src/modules/graphics/Shader.cpp @@ -551,7 +551,7 @@ std::string Shader::createShaderStageCode(Graphics *gfx, ShaderStageType stage, // Note: backends are expected to handle this situation if highp is ever // conditional in that backend. if (!gfx->getCapabilities().features[Graphics::FEATURE_PIXEL_SHADER_HIGHP]) - ss << "#define LOVE_SPLIT_UNIFORMS_PER_DRAW 1"; + ss << "#define LOVE_SPLIT_UNIFORMS_PER_DRAW 1\n"; for (const auto &def : options.defines) ss << "#define " + def.first + " " + def.second + "\n"; diff --git a/src/modules/graphics/opengl/Shader.cpp b/src/modules/graphics/opengl/Shader.cpp index 08d65c4bb..a9fda6eca 100644 --- a/src/modules/graphics/opengl/Shader.cpp +++ b/src/modules/graphics/opengl/Shader.cpp @@ -469,7 +469,7 @@ bool Shader::loadVolatile() // love::graphics::Shader sets up the shader code-side of this. auto gfx = Module::getInstance(Module::M_GRAPHICS); if (gfx != nullptr) - splitUniformsPerDraw = gfx->getCapabilities().features[Graphics::FEATURE_PIXEL_SHADER_HIGHP]; + splitUniformsPerDraw = !gfx->getCapabilities().features[Graphics::FEATURE_PIXEL_SHADER_HIGHP]; // zero out active texture list textureUnits.clear(); diff --git a/src/modules/love/love.cpp b/src/modules/love/love.cpp index ab511a05e..4c1494aa4 100644 --- a/src/modules/love/love.cpp +++ b/src/modules/love/love.cpp @@ -86,6 +86,11 @@ extern "C" # include "audio/Audio.h" #endif +// For love::system::System::getOS. +#ifdef LOVE_ENABLE_SYSTEM +# include "system/System.h" +#endif + // Scripts. #include "scripts/nogame.lua.h" @@ -599,18 +604,8 @@ int luaopen_love(lua_State *L) lua_pushcfunction(L, w_love_isVersionCompatible); lua_setfield(L, -2, "isVersionCompatible"); -#ifdef LOVE_WINDOWS_UWP - lua_pushstring(L, "UWP"); -#elif LOVE_WINDOWS - lua_pushstring(L, "Windows"); -#elif defined(LOVE_MACOS) - lua_pushstring(L, "OS X"); -#elif defined(LOVE_IOS) - lua_pushstring(L, "iOS"); -#elif defined(LOVE_ANDROID) - lua_pushstring(L, "Android"); -#elif defined(LOVE_LINUX) - lua_pushstring(L, "Linux"); +#ifdef LOVE_ENABLE_SYSTEM + lua_pushstring(L, love::system::System::getOS()); #else lua_pushstring(L, "Unknown"); #endif diff --git a/src/modules/system/System.cpp b/src/modules/system/System.cpp index 800bf5866..fc3fa935b 100644 --- a/src/modules/system/System.cpp +++ b/src/modules/system/System.cpp @@ -62,7 +62,7 @@ System::System() { } -std::string System::getOS() const +const char *System::getOS() { #if defined(LOVE_MACOS) return "OS X"; diff --git a/src/modules/system/System.h b/src/modules/system/System.h index 8a40f59e9..f81862fe8 100644 --- a/src/modules/system/System.h +++ b/src/modules/system/System.h @@ -57,7 +57,7 @@ public: /** * Gets the current operating system. **/ - std::string getOS() const; + static const char *getOS(); /** * Gets the number of reported CPU cores on the current system. diff --git a/src/modules/system/wrap_System.cpp b/src/modules/system/wrap_System.cpp index d7d3209bd..0c0d7c6ad 100644 --- a/src/modules/system/wrap_System.cpp +++ b/src/modules/system/wrap_System.cpp @@ -31,7 +31,7 @@ namespace system int w_getOS(lua_State *L) { - luax_pushstring(L, instance()->getOS()); + luax_pushstring(L, System::getOS()); return 1; }