Small adjustment to landscape vp parameter setting

This commit is contained in:
kaetemi 2013-09-10 16:24:45 +02:00
parent 54ccd5d129
commit 7f02dc6a5f

View file

@ -1198,11 +1198,14 @@ void CLandscape::render(const CVector &refineCenter, const CVector &frontVecto
bool uprogstate = driver->isUniformProgramState(); bool uprogstate = driver->isUniformProgramState();
uint nbvp = uprogstate ? CLandscapeVBAllocator::MaxVertexProgram : 1; uint nbvp = uprogstate ? CLandscapeVBAllocator::MaxVertexProgram : 1;
for (uint i = 0; i < nbvp; ++i) for (uint i = 0; i < nbvp; ++i)
{
CVertexProgramLandscape *program = _TileVB.getVP(i);
if (program)
{ {
// activate the program to set the uniforms in the program state for all programs // activate the program to set the uniforms in the program state for all programs
// note: when uniforms are driver state, the indices must be the same across programs // note: when uniforms are driver state, the indices must be the same across programs
if (uprogstate) _TileVB.activateVP(i); if (uprogstate) _TileVB.activateVP(i);
CVertexProgramLandscape *program = _TileVB.getVP(i);
// c[0..3] take the ModelViewProjection Matrix. // c[0..3] take the ModelViewProjection Matrix.
driver->setUniformMatrix(IDriver::VertexProgram, program->getUniformIndex(CGPUProgramIndex::ModelViewProjection), IDriver::ModelViewProjection, IDriver::Identity); driver->setUniformMatrix(IDriver::VertexProgram, program->getUniformIndex(CGPUProgramIndex::ModelViewProjection), IDriver::ModelViewProjection, IDriver::Identity);
// c[4] take useful constants. // c[4] take useful constants.
@ -1217,6 +1220,7 @@ void CLandscape::render(const CVector &refineCenter, const CVector &frontVecto
driver->setUniform3f(IDriver::VertexProgram, program->idx().PZBModelPosition, _PZBModelPosition); driver->setUniform3f(IDriver::VertexProgram, program->idx().PZBModelPosition, _PZBModelPosition);
} }
} }
}
// 1. TileRender pass. // 1. TileRender pass.