diff options
Diffstat (limited to 'Source/Core/VideoBackends/OGL/TextureCache.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/OGL/TextureCache.cpp | 40 |
1 files changed, 19 insertions, 21 deletions
diff --git a/Source/Core/VideoBackends/OGL/TextureCache.cpp b/Source/Core/VideoBackends/OGL/TextureCache.cpp index 2cd1f3942a..5ffd87699b 100644 --- a/Source/Core/VideoBackends/OGL/TextureCache.cpp +++ b/Source/Core/VideoBackends/OGL/TextureCache.cpp @@ -215,10 +215,8 @@ void TextureCache::TCacheEntry::Load(unsigned int width, unsigned int height, TextureCache::SetStage(); } -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) +void TextureCache::TCacheEntry::FromRenderTarget(u8* dstPointer, PEControl::PixelFormat srcFormat, const EFBRectangle& srcRect, + bool scaleByHalf, unsigned int cbufid, const float *colmat) { g_renderer->ResetAPIState(); // reset any game specific settings @@ -264,27 +262,27 @@ void TextureCache::TCacheEntry::FromRenderTarget(u8* dstPointer, unsigned int ds glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - if (g_ActiveConfig.bSkipEFBCopyToRam) - { - this->Zero(dstPointer); - } - else - { - TextureConverter::EncodeToRamFromTexture( - dstPointer, - this, - read_texture, - srcFormat == PEControl::Z24, - isIntensity, - scaleByHalf, - srcRect); - } - FramebufferManager::SetFramebuffer(0); - g_renderer->RestoreAPIState(); } +void TextureCache::CopyEFB(u8* dst, u32 format, u32 native_width, u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride, + PEControl::PixelFormat srcFormat, const EFBRectangle& srcRect, + bool isIntensity, bool scaleByHalf) +{ + TextureConverter::EncodeToRamFromTexture( + dst, + format, + native_width, + bytes_per_row, + num_blocks_y, + memory_stride, + srcFormat, + isIntensity, + scaleByHalf, + srcRect); +} + TextureCache::TextureCache() { CompileShaders(); |
