7#include <unordered_map>
48 const std::string& actionCategory,
49 const std::string& actionName,
68 uint64_t styleUuid = 0;
69 uint32_t deviceEpoch = 0;
71 std::string deviceTag;
73 bool operator==(
const CacheKey& o)
const
75 return mapUuid == o.mapUuid && styleUuid == o.styleUuid &&
76 deviceEpoch == o.deviceEpoch && action == o.action &&
77 deviceTag == o.deviceTag;
83 size_t operator()(
const CacheKey& k)
const
85 size_t h = std::hash<uint64_t>()(k.mapUuid);
86 h ^= std::hash<uint64_t>()(k.styleUuid) + 0x9e3779b97f4a7c15ULL + (h << 6) + (h >> 2);
87 h ^= std::hash<uint32_t>()(k.deviceEpoch) + 0x9e3779b97f4a7c15ULL + (h << 6) + (h >> 2);
88 h ^= std::hash<std::string>()(k.action) + 0x9e3779b97f4a7c15ULL + (h << 6) + (h >> 2);
89 h ^= std::hash<std::string>()(k.deviceTag) + 0x9e3779b97f4a7c15ULL + (h << 6) + (h >> 2);
100 static constexpr size_t kCacheLimit = 256;
102 std::list<CacheEntry> mLru;
103 std::unordered_map<CacheKey, std::list<CacheEntry>::iterator, CacheKeyHash> mLookup;
104 uint32_t mLastSeenDeviceFrame = 0;
Definition InputPromptResolver.h:14
InputPromptKind kind
Definition InputPromptResolver.h:15
Texture * sprite
Definition InputPromptResolver.h:16
uint32_t codepoint
Definition InputPromptResolver.h:18
Font * font
Definition InputPromptResolver.h:17
std::string label
Definition InputPromptResolver.h:19