diff --git a/source/renderer/backend/gl/ShaderProgram.cpp b/source/renderer/backend/gl/ShaderProgram.cpp index 2aaaed3f23..c81c20c8a4 100644 --- a/source/renderer/backend/gl/ShaderProgram.cpp +++ b/source/renderer/backend/gl/ShaderProgram.cpp @@ -271,7 +271,7 @@ class CShaderProgramARB final : public CShaderProgram public: CShaderProgramARB( CDevice* device, - const VfsPath& vertexFilePath, const VfsPath& fragmentFilePath, + const VfsPath& path, const VfsPath& vertexFilePath, const VfsPath& fragmentFilePath, const CShaderDefines& defines, const std::map>& vertexIndices, const std::map>& fragmentIndices, @@ -281,7 +281,7 @@ public: glGenProgramsARB(1, &m_VertexProgram); glGenProgramsARB(1, &m_FragmentProgram); - std::vector newFileDependencies = {vertexFilePath, fragmentFilePath}; + std::vector newFileDependencies = {path, vertexFilePath, fragmentFilePath}; CStr vertexCode; if (!PreprocessShaderFile(true, defines, vertexFilePath, vertexCode, newFileDependencies)) @@ -586,7 +586,7 @@ class CShaderProgramGLSL final : public CShaderProgram public: CShaderProgramGLSL( CDevice* device, const CStr& name, - const VfsPath& vertexFilePath, const VfsPath& fragmentFilePath, + const VfsPath& path, const VfsPath& vertexFilePath, const VfsPath& fragmentFilePath, const CShaderDefines& defines, const std::map& vertexAttribs, int streamflags) : @@ -601,7 +601,7 @@ public: m_Program = 0; m_VertexShader = glCreateShader(GL_VERTEX_SHADER); m_FragmentShader = glCreateShader(GL_FRAGMENT_SHADER); - m_FileDependencies = {vertexFilePath, fragmentFilePath}; + m_FileDependencies = {path, vertexFilePath, fragmentFilePath}; #if !CONFIG2_GLES if (m_Device->GetCapabilities().debugLabels) @@ -611,7 +611,7 @@ public: } #endif - std::vector newFileDependencies = {vertexFilePath, fragmentFilePath}; + std::vector newFileDependencies = {path, vertexFilePath, fragmentFilePath}; CStr vertexCode; if (!PreprocessShaderFile(false, defines, vertexFilePath, vertexCode, newFileDependencies)) @@ -1290,7 +1290,8 @@ std::unique_ptr CShaderProgram::Create(CDevice* device, const CS if (isGLSL) { return std::make_unique( - device, name, vertexFile, fragmentFile, defines, vertexAttribs, streamFlags); + device, name, xmlFilename, vertexFile, fragmentFile, defines, + vertexAttribs, streamFlags); } else { @@ -1300,7 +1301,7 @@ std::unique_ptr CShaderProgram::Create(CDevice* device, const CS return nullptr; #else return std::make_unique( - device, vertexFile, fragmentFile, defines, + device, xmlFilename, vertexFile, fragmentFile, defines, vertexUniforms, fragmentUniforms, streamFlags); #endif }