diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2026-10-03 22:27:39 -0500 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2026-10-03 22:31:14 -0500 |
| commit | 93c28ee3076b033bf10132a60d85e64623e33040 (patch) | |
| tree | 9636c14d413fa812b73329187371f0bd9d16d2f2 /Source/Core | |
| parent | f70b2990ada78d4ef22cd399a474705eba64d617 (diff) | |
VideoCommon: return a RcTcacheEntry (shared_ptr) from TextureCacheBase::Load()
This allows the texture entry to be stored off or passed around and shared in the future
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/VideoCommon/TextureCacheBase.cpp | 10 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/TextureCacheBase.h | 4 |
2 files changed, 7 insertions, 7 deletions
diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp index 4e4567da8e..e91479799b 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.cpp +++ b/Source/Core/VideoCommon/TextureCacheBase.cpp @@ -1239,7 +1239,7 @@ private: std::vector<Level> levels; }; -TCacheEntry* TextureCacheBase::Load(u32 stage) +RcTcacheEntry TextureCacheBase::Load(u32 stage) { if (auto entry = LoadImpl(stage, false)) { @@ -1248,19 +1248,19 @@ TCacheEntry* TextureCacheBase::Load(u32 stage) return entry; } - InvalidateTexture(GetTexCacheIter(entry)); + InvalidateTexture(GetTexCacheIter(entry.get())); return LoadImpl(stage, true); } return nullptr; } -TCacheEntry* TextureCacheBase::LoadImpl(u32 stage, bool force_reload) +RcTcacheEntry TextureCacheBase::LoadImpl(u32 stage, bool force_reload) { // if this stage was not invalidated by changes to texture registers, keep the current texture if (!force_reload && TMEM::IsValid(stage) && m_bound_textures[stage]) { - TCacheEntry* entry = m_bound_textures[stage].get(); + const auto& entry = m_bound_textures[stage]; // If the TMEM configuration is such that this texture is more or less guaranteed to still // be in TMEM, then we know we can reuse the old entry without even hashing the memory // @@ -1308,7 +1308,7 @@ TCacheEntry* TextureCacheBase::LoadImpl(u32 stage, bool force_reload) TMEM::Bind(texture_info.GetStage(), entry->NumBlocksX(), entry->NumBlocksY(), entry->GetNumLevels() > 1, entry->format == TextureFormat::RGBA8); - return entry.get(); + return entry; } RcTcacheEntry TextureCacheBase::GetTexture(const int textureCacheSafetyColorSampleSize, diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h index 7e9d0613d4..4b9685dbcd 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.h +++ b/Source/Core/VideoCommon/TextureCacheBase.h @@ -278,7 +278,7 @@ public: void Invalidate(); void ReleaseToPool(TCacheEntry* entry); - TCacheEntry* Load(u32 stage); + RcTcacheEntry Load(u32 stage); RcTcacheEntry GetTexture(const int textureCacheSafetyColorSampleSize, const TextureInfo& texture_info); RcTcacheEntry GetXFBTexture(u32 address, u32 width, u32 height, u32 stride, @@ -352,7 +352,7 @@ private: static bool DidLinkedAssetsChange(const TCacheEntry& entry); - TCacheEntry* LoadImpl(u32 stage, bool force_reload); + RcTcacheEntry LoadImpl(u32 stage, bool force_reload); bool CreateUtilityTextures(); |
