mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-11 14:44:36 +00:00
* [OpenGL] BugFix: Correct shader errors being thrown during the load phase due to direct use of glUseProgram causing desync with GFXGLDevice.
This commit is contained in:
parent
328319b853
commit
c8a5ccb191
3 changed files with 10 additions and 6 deletions
|
|
@ -382,10 +382,11 @@ void GFXGLShaderConstBuffer::onShaderReload( GFXGLShader *shader )
|
|||
mWasLost = true;
|
||||
}
|
||||
|
||||
GFXGLShader::GFXGLShader() :
|
||||
GFXGLShader::GFXGLShader(GFXGLDevice* device) :
|
||||
mVertexShader(0),
|
||||
mPixelShader(0),
|
||||
mProgram(0),
|
||||
mDevice(device),
|
||||
mConstBufferSize(0),
|
||||
mConstBuffer(NULL)
|
||||
{
|
||||
|
|
@ -706,7 +707,8 @@ void GFXGLShader::initHandles()
|
|||
dMemset(mConstBuffer, 0, mConstBufferSize);
|
||||
|
||||
// Set our program so uniforms are assigned properly.
|
||||
glUseProgram(mProgram);
|
||||
mDevice->setShader(this, false);
|
||||
|
||||
// Iterate through uniforms to set sampler numbers.
|
||||
for (HandleMap::Iterator iter = mHandles.begin(); iter != mHandles.end(); ++iter)
|
||||
{
|
||||
|
|
@ -723,7 +725,6 @@ void GFXGLShader::initHandles()
|
|||
dMemcpy(mConstBuffer + handle->mOffset, &handle->mSamplerNum, handle->getSize());
|
||||
}
|
||||
}
|
||||
glUseProgram(0);
|
||||
|
||||
//instancing
|
||||
if (!mInstancingFormat)
|
||||
|
|
@ -830,6 +831,7 @@ void GFXGLShader::setConstantsFromBuffer(GFXGLShaderConstBuffer* buffer)
|
|||
|
||||
// Copy new value into our const buffer and set in GL.
|
||||
dMemcpy(mConstBuffer + handle->mOffset, buffer->mBuffer + handle->mOffset, handle->getSize());
|
||||
|
||||
switch(handle->mDesc.constType)
|
||||
{
|
||||
case GFXSCT_Float:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue