summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/TextureCache.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2015-09-07 00:10:42 +1200
committerScott Mansell <phiren@gmail.com>2015-09-07 00:10:42 +1200
commitc08a83a5aae41e7c8904295cfa62f932ea87ce02 (patch)
treeb68a913ead1727132fbbb3f4a1bd472f47b9cb1e /Source/Core/VideoBackends/OGL/TextureCache.cpp
parentbe4caa3dc025d18d57cf53b27e505c19bb70544e (diff)
parentd797b5d0b55e6354af6ba66942b9a6766087e5f9 (diff)
Merge pull request #2957 from phire/unify_efbcopy
Cleanup and unify efb copy implemtations into VideoCommon
Diffstat (limited to 'Source/Core/VideoBackends/OGL/TextureCache.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/TextureCache.cpp22
1 files changed, 6 insertions, 16 deletions
diff --git a/Source/Core/VideoBackends/OGL/TextureCache.cpp b/Source/Core/VideoBackends/OGL/TextureCache.cpp
index 3fe28b07a1..86360976bf 100644
--- a/Source/Core/VideoBackends/OGL/TextureCache.cpp
+++ b/Source/Core/VideoBackends/OGL/TextureCache.cpp
@@ -213,7 +213,7 @@ void TextureCache::TCacheEntry::Load(unsigned int width, unsigned int height,
TextureCache::SetStage();
}
-void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFormat,
+void TextureCache::TCacheEntry::FromRenderTarget(u8* dstPointer, unsigned int dstFormat, u32 dstStride,
PEControl::PixelFormat srcFormat, const EFBRectangle& srcRect,
bool isIntensity, bool scaleByHalf, unsigned int cbufid,
const float *colmat)
@@ -264,24 +264,14 @@ void TextureCache::TCacheEntry::FromRenderTarget(u32 dstAddr, unsigned int dstFo
if (!g_ActiveConfig.bSkipEFBCopyToRam)
{
- int encoded_size = TextureConverter::EncodeToRamFromTexture(
- dstAddr,
+ TextureConverter::EncodeToRamFromTexture(
+ dstPointer,
+ this,
read_texture,
srcFormat == PEControl::Z24,
isIntensity,
- dstFormat,
scaleByHalf,
- srcRect,
- copyMipMapStrideChannels * 32);
-
- u8* dst = Memory::GetPointer(dstAddr);
- u64 const new_hash = GetHash64(dst,encoded_size,g_ActiveConfig.iSafeTextureCache_ColorSamples);
-
- size_in_bytes = (u32)encoded_size;
-
- TextureCache::MakeRangeDynamic(dstAddr, encoded_size);
-
- hash = new_hash;
+ srcRect);
}
FramebufferManager::SetFramebuffer(0);
@@ -570,7 +560,7 @@ void TextureCache::ConvertTexture(TCacheEntryBase* _entry, TCacheEntryBase* _unc
memcpy(buffer.first, palette, size);
s_palette_stream_buffer->Unmap(size);
glUniform1i(s_palette_buffer_offset_uniform[format], buffer.second / 2);
- glUniform1f(s_palette_multiplier_uniform[format], unconverted->format == 0 ? 15.0f : 255.0f);
+ glUniform1f(s_palette_multiplier_uniform[format], (unconverted->format & 0xf) == 0 ? 15.0f : 255.0f);
glUniform4f(s_palette_copy_position_uniform[format], 0.0f, 0.0f, (float)unconverted->config.width, (float)unconverted->config.height);
glActiveTexture(GL_TEXTURE10);