diff options
| author | Markus Wick <markus+github@selfnet.de> | 2015-05-29 16:21:05 +0200 |
|---|---|---|
| committer | Markus Wick <markus+github@selfnet.de> | 2015-05-29 16:21:05 +0200 |
| commit | d1d284e784f85463760cd75095595d1705436282 (patch) | |
| tree | 2ba8ade1ad89a0eb6ee6087387e37dac51de1cf7 /Source/Core/VideoBackends/OGL/TextureCache.cpp | |
| parent | 61c53babf4c5ea8e7a0f35f8f0979ae931c8de97 (diff) | |
| parent | c4fc141ced900bfa73b06155e5e566df131e2f67 (diff) | |
Merge pull request #2475 from degasus/sampler
OGL: Always use sampler objects.
Diffstat (limited to 'Source/Core/VideoBackends/OGL/TextureCache.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/OGL/TextureCache.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/OGL/TextureCache.cpp b/Source/Core/VideoBackends/OGL/TextureCache.cpp index fd55258838..0256b303e7 100644 --- a/Source/Core/VideoBackends/OGL/TextureCache.cpp +++ b/Source/Core/VideoBackends/OGL/TextureCache.cpp @@ -18,6 +18,7 @@ #include "VideoBackends/OGL/GLInterfaceBase.h" #include "VideoBackends/OGL/ProgramShaderCache.h" #include "VideoBackends/OGL/Render.h" +#include "VideoBackends/OGL/SamplerCache.h" #include "VideoBackends/OGL/StreamBuffer.h" #include "VideoBackends/OGL/TextureCache.h" #include "VideoBackends/OGL/TextureConverter.h" @@ -61,7 +62,6 @@ bool SaveTexture(const std::string& filename, u32 textarget, u32 tex, int virtua glActiveTexture(GL_TEXTURE9); glBindTexture(textarget, tex); glGetTexImage(textarget, level, GL_RGBA, GL_UNSIGNED_BYTE, data.data()); - glBindTexture(textarget, 0); TextureCache::SetStage(); return TextureToPng(data.data(), width * 4, filename, width, height, true); @@ -178,6 +178,10 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo glActiveTexture(GL_TEXTURE9); glBindTexture(GL_TEXTURE_2D_ARRAY, read_texture); + if (scaleByHalf) + g_sampler_cache->BindLinearSampler(9); + else + g_sampler_cache->BindNearestSampler(9); glViewport(0, 0, config.width, config.height); @@ -489,6 +493,7 @@ void TextureCache::ConvertTexture(TCacheEntryBase* _entry, TCacheEntryBase* _unc glActiveTexture(GL_TEXTURE9); glBindTexture(GL_TEXTURE_2D_ARRAY, unconverted->texture); + g_sampler_cache->BindNearestSampler(9); FramebufferManager::SetFramebuffer(entry->framebuffer); glViewport(0, 0, entry->config.width, entry->config.height); @@ -504,6 +509,7 @@ void TextureCache::ConvertTexture(TCacheEntryBase* _entry, TCacheEntryBase* _unc glActiveTexture(GL_TEXTURE10); glBindTexture(GL_TEXTURE_BUFFER, s_palette_resolv_texture); + g_sampler_cache->BindNearestSampler(10); OpenGL_BindAttributelessVAO(); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); |
