From 4103b282bb10f37aa3875dbf49a95420b35229fb Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 25 Nov 2022 12:29:36 +0100 Subject: [PATCH] - fixed: The raw texture caching in the texture manager did not work. This erroneously checked for FrontSkyLayer. Also including some change here that allows explicit setting of the RawTexture (not used yet.) --- src/common/textures/texturemanager.cpp | 5 +++-- src/common/textures/texturemanager.h | 10 +++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/common/textures/texturemanager.cpp b/src/common/textures/texturemanager.cpp index 21b9013f7..ebdfab465 100644 --- a/src/common/textures/texturemanager.cpp +++ b/src/common/textures/texturemanager.cpp @@ -1300,11 +1300,12 @@ void FTextureManager::InitPalettedVersions() // //========================================================================== -FTextureID FTextureManager::GetRawTexture(FTextureID texid) +FTextureID FTextureManager::GetRawTexture(FTextureID texid, bool dontlookup) { int texidx = texid.GetIndex(); if ((unsigned)texidx >= Textures.Size()) return texid; - if (Textures[texidx].FrontSkyLayer != -1) return FSetTextureID(Textures[texidx].FrontSkyLayer); + if (Textures[texidx].RawTexture != -1) return FSetTextureID(Textures[texidx].RawTexture); + if (dontlookup) return texid; // Reject anything that cannot have been a front layer for the sky in original Hexen, i.e. it needs to be an unscaled wall texture only using Doom patches. auto tex = Textures[texidx].Texture; diff --git a/src/common/textures/texturemanager.h b/src/common/textures/texturemanager.h index bed10e659..7d9815991 100644 --- a/src/common/textures/texturemanager.h +++ b/src/common/textures/texturemanager.h @@ -77,7 +77,15 @@ public: void FlushAll(); FTextureID GetFrontSkyLayer(FTextureID); - FTextureID GetRawTexture(FTextureID); + FTextureID GetRawTexture(FTextureID tex, bool dontlookup = false); + void SetRawTexture(FTextureID texid) + { + int texidx = texid.GetIndex(); + if ((unsigned)texidx < Textures.Size()) + { + Textures[texidx].RawTexture = texidx; + } + } enum