diff options
Diffstat (limited to 'Source/Core/VideoCommon/Src/TextureCacheBase.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/Src/TextureCacheBase.cpp | 39 |
1 files changed, 19 insertions, 20 deletions
diff --git a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp index 319c014f22..d5d21f89d0 100644 --- a/Source/Core/VideoCommon/Src/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/Src/TextureCacheBase.cpp @@ -1,19 +1,6 @@ -// Copyright (C) 2003 Dolphin Project. - -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 2.0. - -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License 2.0 for more details. - -// A copy of the GPL 2.0 should have been included with the program. -// If not, see http://www.gnu.org/licenses/ - -// Official SVN repository and contact information can be found at -// http://code.google.com/p/dolphin-emu/ +// Copyright 2013 Dolphin Emulator Project +// Licensed under GPLv2 +// Refer to the license.txt file included. #include "MemoryUtil.h" @@ -55,9 +42,12 @@ TextureCache::TextureCache() temp_size = 2048 * 2048 * 4; if (!temp) temp = (u8*)AllocateAlignedMemory(temp_size, 16); + TexDecoder_SetTexFmtOverlayOptions(g_ActiveConfig.bTexFmtOverlayEnable, g_ActiveConfig.bTexFmtOverlayCenter); + if(g_ActiveConfig.bHiresTextures && !g_ActiveConfig.bDumpTextures) HiresTextures::Init(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strUniqueID.c_str()); + SetHash64Function(g_ActiveConfig.bHiresTextures || g_ActiveConfig.bDumpTextures); } @@ -138,7 +128,9 @@ void TextureCache::Cleanup() textures.erase(iter++); } else + { ++iter; + } } } @@ -156,7 +148,9 @@ void TextureCache::InvalidateRange(u32 start_address, u32 size) textures.erase(iter++); } else + { ++iter; + } } } @@ -214,7 +208,9 @@ void TextureCache::ClearRenderTargets() textures.erase(iter++); } else + { ++iter; + } } } @@ -395,7 +391,7 @@ TextureCache::TCacheEntryBase* TextureCache::Load(unsigned int const stage, // TODO: Print a warning if the format changes! In this case, // we could reinterpret the internal texture object data to the new pixel format - // (similiar to what is already being done in Renderer::ReinterpretPixelFormat()) + // (similar to what is already being done in Renderer::ReinterpretPixelFormat()) return ReturnEntry(stage, entry); } @@ -560,17 +556,20 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat const EFBRectangle& srcRect, bool isIntensity, bool scaleByHalf) { // Emulation methods: + // // - EFB to RAM: // Encodes the requested EFB data at its native resolution to the emulated RAM using shaders. // Load() decodes the data from there again (using TextureDecoder) if the EFB copy is being used as a texture again. // Advantage: CPU can read data from the EFB copy and we don't lose any important updates to the texture // Disadvantage: Encoding+decoding steps often are redundant because only some games read or modify EFB copies before using them as textures. + // // - EFB to texture: // Copies the requested EFB data to a texture object in VRAM, performing any color conversion using shaders. // Advantage: Works for many games, since in most cases EFB copies aren't read or modified at all before being used as a texture again. // Since we don't do any further encoding or decoding here, this method is much faster. // It also allows enhancing the visual quality by doing scaled EFB copies. - // - hybrid EFB copies: + // + // - Hybrid EFB copies: // 1a) Whenever this function gets called, encode the requested EFB data to RAM (like EFB to RAM) // 1b) Set type to TCET_EC_DYNAMIC for all texture cache entries in the destination address range. // If EFB copy caching is enabled, further checks will (try to) prevent redundant EFB copies. @@ -685,8 +684,8 @@ void TextureCache::CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat } else { - cbufid = 9; - } + cbufid = 9; + } } else// alpha { |
