- fixed: If we want to cache texture binding state we have to reset it in all places where a texture becomes unbound.

This commit is contained in:
Christoph Oelckers 2014-08-31 19:00:17 +02:00
parent 12160bd29c
commit a280c20b4e
4 changed files with 8 additions and 0 deletions

View file

@ -240,6 +240,7 @@ void OpenGLFrameBuffer::WipeCleanup()
delete wipeendscreen;
wipeendscreen = NULL;
}
FMaterial::ClearLastTexture();
}
//==========================================================================

View file

@ -403,6 +403,7 @@ void FHardwareTexture::UnbindAll()
{
Unbind(texunit);
}
FMaterial::ClearLastTexture();
}
//===========================================================================

View file

@ -753,6 +753,7 @@ void FMaterial::BindToFrameBuffer()
// must create the hardware texture first
mBaseLayer->Bind(0, 0, 0, false, NULL);
FHardwareTexture::Unbind(0);
ClearLastTexture();
}
mBaseLayer->mHwTexture->BindToFrameBuffer();
}
@ -809,3 +810,7 @@ void FMaterial::FlushAll()
}
}
void FMaterial::ClearLastTexture()
{
last = NULL;
}

View file

@ -253,6 +253,7 @@ public:
static void FlushAll();
static FMaterial *ValidateTexture(FTexture * tex, bool expand);
static FMaterial *ValidateTexture(FTextureID no, bool expand, bool trans);
static void ClearLastTexture();
};