22 #ifndef FIFE_VIEW_LAYERCACHE_H
23 #define FIFE_VIEW_LAYERCACHE_H
36 #include "model/structures/location.h"
37 #include "util/math/matrix.h"
38 #include "util/structures/rect.h"
39 #include "util/structures/quadtree.h"
40 #include "model/metamodel/grids/cellgrid.h"
42 #include "rendererbase.h"
47 class CacheLayerChangeListener;
51 typedef QuadTree<std::set<int32_t> > CacheTree;
53 LayerCache(Camera* camera);
56 void setLayer(Layer* layer);
58 bool needUpdate() {
return m_needupdate; }
59 void update(Camera::Transform transform, RenderList& renderlist);
61 void addInstance(Instance* instance);
62 void removeInstance(Instance* instance);
64 void updateInstance(Instance* instance);
68 void collect(
const Rect& viewport, std::vector<int32_t>& indices);
74 CacheTree::Node* node;
77 signed instance_index;
87 CacheLayerChangeListener* m_layer_observer;
89 void updateEntry(Entry& item);
91 std::map<Instance*,int32_t> m_instance_map;
92 std::vector<Entry> m_entries;
95 std::vector<RenderItem> m_instances;