diff options
Diffstat (limited to 'Source/Core/VideoCommon/TextureCacheBase.h')
| -rw-r--r-- | Source/Core/VideoCommon/TextureCacheBase.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h index 23f25f48fc..56bf6fb849 100644 --- a/Source/Core/VideoCommon/TextureCacheBase.h +++ b/Source/Core/VideoCommon/TextureCacheBase.h @@ -5,6 +5,7 @@ #pragma once #include <array> +#include <bitset> #include <map> #include <memory> #include <tuple> @@ -39,6 +40,7 @@ public: bool is_efb_copy; bool is_custom_tex; bool may_have_overlapping_textures = true; + bool tmem_only = false; // indicates that this texture only exists in the tmem cache unsigned int native_width, native_height; // Texture dimensions from the GameCube's point of view @@ -125,8 +127,9 @@ public: virtual void DeleteShaders() = 0; TCacheEntry* Load(const u32 stage); - void UnbindTextures(); - virtual void BindTextures(); + static void InvalidateAllBindPoints() { valid_bind_points.reset(); } + static bool IsValidBindPoint(u32 i) { return valid_bind_points.test(i); } + void BindTextures(); void CopyRenderTargetToTexture(u32 dstAddr, unsigned int dstFormat, u32 dstStride, bool is_depth_copy, const EFBRectangle& srcRect, bool isIntensity, bool scaleByHalf); @@ -158,6 +161,7 @@ protected: size_t temp_size = 0; std::array<TCacheEntry*, 8> bound_textures{}; + static std::bitset<8> valid_bind_points; private: // Minimal version of TCacheEntry just for TexPool |
