15class GraphicsResourceCache
18 GraphicsResourceCache();
19 ~GraphicsResourceCache() =
default;
22 [[nodiscard]] std::shared_ptr<GraphicsResource> Find(
const std::type_index& typeIndex,
const Node& node)
const;
25 [[nodiscard]] std::shared_ptr<T> Find(
const Node& node)
const
27 return std::dynamic_pointer_cast<T>(Find(
typeid(T), node));
30 void Add(
const Node& node,
const std::shared_ptr<GraphicsResource>& resource);
31 bool Remove(
const std::type_index& type_index,
const Node& node);
34 bool Remove(
const Node& node)
36 return Remove(
typeid(T), node);
39 void Remove(
const std::shared_ptr<GraphicsResource>& resource);
43 std::unordered_map<std::type_index, std::map<Node, std::shared_ptr<GraphicsResource>>> resources_;
44 std::chrono::steady_clock::time_point last_purge_time_;
45 std::chrono::seconds purge_interval_ = std::chrono::seconds(5);