add stage parameter for texture load, so ogl can bind to the correct sampler

This commit is contained in:
degasus
2013-01-19 00:47:48 +01:00
parent 074f73c641
commit e7d5b274c0
9 changed files with 12 additions and 11 deletions

View File

@ -132,6 +132,7 @@ TextureCache::TCacheEntry::TCacheEntry()
void TextureCache::TCacheEntry::Bind(unsigned int stage)
{
glActiveTexture(GL_TEXTURE0 + stage);
glBindTexture(GL_TEXTURE_2D, texture);
GL_REPORT_ERRORD();
@ -222,9 +223,10 @@ TextureCache::TCacheEntryBase* TextureCache::CreateTexture(unsigned int width,
return &entry;
}
void TextureCache::TCacheEntry::Load(unsigned int width, unsigned int height,
void TextureCache::TCacheEntry::Load(unsigned int stage, unsigned int width, unsigned int height,
unsigned int expanded_width, unsigned int level, bool autogen_mips)
{
glActiveTexture(GL_TEXTURE0 + stage);
glBindTexture(GL_TEXTURE_2D, texture);
//GL_REPORT_ERRORD();

View File

@ -55,7 +55,7 @@ private:
TCacheEntry();
~TCacheEntry();
void Load(unsigned int width, unsigned int height,
void Load(unsigned int stage, unsigned int width, unsigned int height,
unsigned int expanded_width, unsigned int level, bool autogen_mips = false);
void FromRenderTarget(u32 dstAddr, unsigned int dstFormat,

View File

@ -276,7 +276,6 @@ void VertexManager::vFlush()
{
if (usedtextures & (1 << i))
{
glActiveTexture(GL_TEXTURE0 + i);
FourTexUnits &tex = bpmem.tex[i >> 2];
TextureCache::TCacheEntryBase* tentry = TextureCache::Load(i,
(tex.texImage3[i&3].image_base/* & 0x1FFFFF*/) << 5,