Skip to content

Commit

Permalink
fix #4698: I am pretty sure I commited that already ...
Browse files Browse the repository at this point in the history
  • Loading branch information
jK committed Mar 12, 2015
1 parent 1aad565 commit 85071eb
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions rts/Rendering/Shaders/Shader.cpp
Expand Up @@ -189,6 +189,7 @@ namespace Shader {
if (reloadFromDisk || curShaderSrc.empty())
curShaderSrc = GetShaderSource(srcFile);

assert(!curShaderSrc.empty());
std::string sourceStr = curShaderSrc;
std::string defFlags = rawDefStrs + "\n" + modDefStrs;
std::string versionStr;
Expand Down Expand Up @@ -496,6 +497,7 @@ namespace Shader {
curFlagsHash = 0;
objID = 0;
objID = glCreateProgram();
curSrcHash = 0;
}

void GLSLProgramObject::Reload(bool reloadFromDisk) {
Expand All @@ -508,8 +510,8 @@ namespace Shader {
log = "";
valid = false;

curFlagsHash = GetHash();
// create shader source hash
curFlagsHash = GetHash();
curSrcHash = curFlagsHash;
for (const IShaderObject* so: GetAttachedShaderObjs()) {
curSrcHash ^= so->GetHash();
Expand Down Expand Up @@ -549,12 +551,14 @@ namespace Shader {
}
}
Link();
} else {
valid = true;
}


// copy full program state from old to new program (uniforms etc.)
//FIXME if (IsValid())
GLSLCopyState(objID, oldProgID, &((IProgramObject*)(this))->uniformStates);
if (oldValid && IsValid()) {
GLSLCopyState(objID, oldProgID, &((IProgramObject*)(this))->uniformStates);
}

// delete old program when not further used
if (deleteOldShader)
Expand Down

0 comments on commit 85071eb

Please sign in to comment.