diff options
Diffstat (limited to 'source/game/StarImageMetadataDatabase.hpp')
-rw-r--r-- | source/game/StarImageMetadataDatabase.hpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/game/StarImageMetadataDatabase.hpp b/source/game/StarImageMetadataDatabase.hpp index 69e7a07..0a04b1f 100644 --- a/source/game/StarImageMetadataDatabase.hpp +++ b/source/game/StarImageMetadataDatabase.hpp @@ -5,6 +5,7 @@ #include "StarString.hpp" #include "StarThread.hpp" #include "StarAssetPath.hpp" +#include "StarTtlCache.hpp" namespace Star { @@ -15,9 +16,11 @@ STAR_CLASS(ImageMetadataDatabase); // because they are expensive to compute and cheap to keep around. class ImageMetadataDatabase { public: + ImageMetadataDatabase(); Vec2U imageSize(AssetPath const& path) const; List<Vec2I> imageSpaces(AssetPath const& path, Vec2F position, float fillLimit, bool flip) const; RectU nonEmptyRegion(AssetPath const& path) const; + void cleanup() const; private: // Removes image processing directives that don't affect image spaces / @@ -30,9 +33,9 @@ private: typedef tuple<AssetPath, Vec2I, float, bool> SpacesEntry; mutable Mutex m_mutex; - mutable HashMap<AssetPath, Vec2U> m_sizeCache; - mutable HashMap<SpacesEntry, List<Vec2I>> m_spacesCache; - mutable HashMap<AssetPath, RectU> m_regionCache; + mutable HashTtlCache<AssetPath, Vec2U> m_sizeCache; + mutable HashTtlCache<SpacesEntry, List<Vec2I>> m_spacesCache; + mutable HashTtlCache<AssetPath, RectU> m_regionCache; }; } |