From 495902787c74612c870547c21dbdb61bc53fecf8 Mon Sep 17 00:00:00 2001 From: degasus Date: Thu, 29 Oct 2015 08:42:30 +0100 Subject: [PATCH] OGL: Remove TCache::Entry usage in TextureConverter --- Source/Core/VideoBackends/OGL/TextureCache.cpp | 6 +++++- Source/Core/VideoBackends/OGL/TextureConverter.cpp | 12 ++++++------ Source/Core/VideoBackends/OGL/TextureConverter.h | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Source/Core/VideoBackends/OGL/TextureCache.cpp b/Source/Core/VideoBackends/OGL/TextureCache.cpp index 2cd1f3942a..287e9b2188 100644 --- a/Source/Core/VideoBackends/OGL/TextureCache.cpp +++ b/Source/Core/VideoBackends/OGL/TextureCache.cpp @@ -272,7 +272,11 @@ void TextureCache::TCacheEntry::FromRenderTarget(u8* dstPointer, unsigned int ds { TextureConverter::EncodeToRamFromTexture( dstPointer, - this, + format, + native_width, + BytesPerRow(), + NumBlocksY(), + memory_stride, read_texture, srcFormat == PEControl::Z24, isIntensity, diff --git a/Source/Core/VideoBackends/OGL/TextureConverter.cpp b/Source/Core/VideoBackends/OGL/TextureConverter.cpp index b780594101..ba2046d9a3 100644 --- a/Source/Core/VideoBackends/OGL/TextureConverter.cpp +++ b/Source/Core/VideoBackends/OGL/TextureConverter.cpp @@ -269,18 +269,18 @@ static void EncodeToRamUsingShader(GLuint srcTexture, } } -void EncodeToRamFromTexture(u8 *dest_ptr, const TextureCache::TCacheEntryBase *texture_entry, +void EncodeToRamFromTexture(u8 *dest_ptr, u32 format, u32 native_width, u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride, GLuint source_texture, bool bFromZBuffer, bool bIsIntensityFmt, int bScaleByHalf, const EFBRectangle& source) { - SHADER& texconv_shader = GetOrCreateEncodingShader(texture_entry->format); + SHADER& texconv_shader = GetOrCreateEncodingShader(format); texconv_shader.Bind(); - glUniform4i(s_encodingUniforms[texture_entry->format], - source.left, source.top, texture_entry->native_width, bScaleByHalf ? 2 : 1); + glUniform4i(s_encodingUniforms[format], + source.left, source.top, native_width, bScaleByHalf ? 2 : 1); EncodeToRamUsingShader(source_texture, - dest_ptr, texture_entry->BytesPerRow(), texture_entry->NumBlocksY(), - texture_entry->memory_stride, bScaleByHalf > 0 && !bFromZBuffer); + dest_ptr, bytes_per_row, num_blocks_y, + memory_stride, bScaleByHalf > 0 && !bFromZBuffer); } void EncodeToRamYUYV(GLuint srcTexture, const TargetRectangle& sourceRc, u8* destAddr, u32 dstWidth, u32 dstStride, u32 dstHeight) diff --git a/Source/Core/VideoBackends/OGL/TextureConverter.h b/Source/Core/VideoBackends/OGL/TextureConverter.h index b13bbc57f2..7a9fbca53e 100644 --- a/Source/Core/VideoBackends/OGL/TextureConverter.h +++ b/Source/Core/VideoBackends/OGL/TextureConverter.h @@ -26,7 +26,7 @@ void EncodeToRamYUYV(GLuint srcTexture, const TargetRectangle& sourceRc, void DecodeToTexture(u32 xfbAddr, int srcWidth, int srcHeight, GLuint destTexture); // returns size of the encoded data (in bytes) -void EncodeToRamFromTexture(u8* dest_ptr, const TextureCacheBase::TCacheEntryBase* texture_entry, +void EncodeToRamFromTexture(u8 *dest_ptr, u32 format, u32 native_width, u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride, GLuint source_texture, bool bFromZBuffer, bool bIsIntensityFmt, int bScaleByHalf, const EFBRectangle& source); }