diff --git a/examples/bin/resources/shaders/triangle.frag.spv b/examples/bin/resources/shaders/triangle.frag.spv index 855cf613a..37fc46adf 100644 Binary files a/examples/bin/resources/shaders/triangle.frag.spv and b/examples/bin/resources/shaders/triangle.frag.spv differ diff --git a/examples/bin/resources/shaders/triangle.vert.spv b/examples/bin/resources/shaders/triangle.vert.spv index 58b0936f4..5692ffb02 100644 Binary files a/examples/bin/resources/shaders/triangle.vert.spv and b/examples/bin/resources/shaders/triangle.vert.spv differ diff --git a/include/Nazara/Core/StringExt.inl b/include/Nazara/Core/StringExt.inl index 71a04ebff..0ab5c0cff 100644 --- a/include/Nazara/Core/StringExt.inl +++ b/include/Nazara/Core/StringExt.inl @@ -60,7 +60,10 @@ namespace Nz return false; } - return func(str.substr(previousPos)); + if (previousPos < str.size()) + return func(str.substr(previousPos)); + else + return true; } template diff --git a/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp b/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp index 5d2c9f366..902f22813 100644 --- a/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp +++ b/src/Nazara/OpenGLRenderer/Wrapper/Context.cpp @@ -185,22 +185,21 @@ namespace Nz::GL return -1; }; - std::string_view versionString = reinterpret_cast(glGetString(GL_VERSION)); - if (versionString.size() > 2 && DecodeDigit(versionString[0]) >= 0 && versionString[1] == '.' && DecodeDigit(versionString[2]) >= 0) - { - m_params.glMajorVersion = DecodeDigit(versionString[0]); - m_params.glMinorVersion = DecodeDigit(versionString[2]); - } - else - NazaraWarning("Failed to decode OpenGL version: " + std::string(versionString)); + GLint majorVersion = 0; + glGetIntegerv(GL_MAJOR_VERSION, &majorVersion); + + GLint minorVersion = 0; + glGetIntegerv(GL_MINOR_VERSION, &minorVersion); + + m_params.glMajorVersion = majorVersion; + m_params.glMinorVersion = minorVersion; // Load extensions - std::string_view extensionList = reinterpret_cast(glGetString(GL_EXTENSIONS)); - SplitString(extensionList, " ", [&](std::string_view extension) - { - m_supportedExtensions.emplace(extension); - return true; - }); + GLint extensionCount = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &extensionCount); + + for (GLint i = 0; i < extensionCount; ++i) + m_supportedExtensions.emplace(reinterpret_cast(glGetStringi(GL_EXTENSIONS, i))); m_extensionStatus.fill(ExtensionStatus::NotSupported); diff --git a/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp b/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp index c5faa2bfa..e07a21294 100644 --- a/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp +++ b/src/Nazara/OpenGLRenderer/Wrapper/Win32/WGLContext.cpp @@ -119,7 +119,7 @@ namespace Nz::GL WGL_CONTEXT_MAJOR_VERSION_ARB, int(version.major), WGL_CONTEXT_MINOR_VERSION_ARB, int(version.minor), - WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB | WGL_CONTEXT_ES_PROFILE_BIT_EXT + WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_ES_PROFILE_BIT_EXT }; m_handle = baseContext->wglCreateContextAttribsARB(m_deviceContext, nullptr, attributes.data()); diff --git a/src/Nazara/VulkanRenderer/VulkanTexture.cpp b/src/Nazara/VulkanRenderer/VulkanTexture.cpp index 55d71c3e6..968e1496e 100644 --- a/src/Nazara/VulkanRenderer/VulkanTexture.cpp +++ b/src/Nazara/VulkanRenderer/VulkanTexture.cpp @@ -88,7 +88,7 @@ namespace Nz createInfo.extent.width = params.width; createInfo.extent.height = params.height; createInfo.extent.depth = 1; - createInfo.arrayLayers = params.height; + createInfo.arrayLayers = params.depth; break; case ImageType_3D: