Rendering fixes for script nodes and certain UV anim modes

This commit is contained in:
parax0
2015-08-20 12:34:05 -04:00
parent 63c8351dcf
commit 3542759c74
2 changed files with 34 additions and 15 deletions

View File

@@ -146,11 +146,22 @@ bool CMaterial::SetCurrent(ERenderOptions Options)
for (u32 iPass = 0; iPass < mPasses.size(); iPass++)
mPasses[iPass]->SetAnimCurrent(Options, iPass);
CGraphics::UpdateVertexBlock();
CGraphics::UpdatePixelBlock();
sCurrentMaterial = HashParameters();
}
// If the passes are otherwise the same, update UV anims that use the model matrix
else
{
for (u32 iPass = 0; iPass < mPasses.size(); iPass++)
{
EUVAnimMode mode = mPasses[iPass]->AnimMode();
if ((mode == eInverseMV) || (mode == eInverseMVTranslated) ||
(mode == eModelMatrix) || (mode == eSimpleMode))
mPasses[iPass]->SetAnimCurrent(Options, iPass);
}
}
// Bind textures
CShader *pShader = CShader::CurrentShader();
@@ -164,6 +175,11 @@ bool CMaterial::SetCurrent(ERenderOptions Options)
// Bind num lights
GLuint NumLightsLoc = pShader->GetUniformLocation("NumLights");
glUniform1i(NumLightsLoc, CGraphics::sNumLights);
// Update shader blocks
CGraphics::UpdateVertexBlock();
CGraphics::UpdatePixelBlock();
return true;
}