diff options
| author | degasus <wickmarkus@web.de> | 2012-12-12 16:57:00 +0100 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2012-12-13 15:28:48 -0600 |
| commit | 09274e2483abd7ea0ae26daa32f9cf3f7a3e2b16 (patch) | |
| tree | 4a2b50234dfb072b28a800f06b223a2f2e52a6e5 /Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp | |
| parent | 61836f8c51e84083a98c3d852f572e6f03d28e8b (diff) | |
Check texture params before updateing them
Signed-off-by: Ryan Houdek <Sonicadvance1@gmail.com>
Diffstat (limited to 'Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp')
| -rw-r--r-- | Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp index 94304f9c44..4f05ccb777 100644 --- a/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp +++ b/Source/Plugins/Plugin_VideoOGL/Src/TextureCache.cpp @@ -113,6 +113,8 @@ TextureCache::TCacheEntry::~TCacheEntry() TextureCache::TCacheEntry::TCacheEntry() { glGenTextures(1, &texture); + currmode.hex = 0; + currmode1.hex = 0; GL_REPORT_ERRORD(); } @@ -125,7 +127,9 @@ void TextureCache::TCacheEntry::Bind(unsigned int stage) // TODO: is this already done somewhere else? TexMode0 &tm0 = bpmem.tex[stage >> 2].texMode0[stage & 3]; TexMode1 &tm1 = bpmem.tex[stage >> 2].texMode1[stage & 3]; - SetTextureParameters(tm0, tm1); + + if(currmode.hex != tm0.hex || currmode1.hex != tm1.hex) + SetTextureParameters(tm0, tm1); } bool TextureCache::TCacheEntry::Save(const char filename[], unsigned int level) @@ -404,6 +408,9 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo void TextureCache::TCacheEntry::SetTextureParameters(const TexMode0 &newmode, const TexMode1 &newmode1) { + currmode = newmode; + currmode1 = newmode1; + // TODO: not used anywhere TexMode0 mode = newmode; //mode1 = newmode1; |
