]> git.tdb.fi Git - libs/gltk.git/blobdiff - source/partcache.h
Improve widget part caching
[libs/gltk.git] / source / partcache.h
index b856f9da47a486151f3a10b62c51f1f0c60fb02c..86a3f364abe21260395493f40580d278f5b5775c 100644 (file)
@@ -7,15 +7,32 @@
 namespace Msp {
 namespace GLtk {
 
+class Part;
+
 struct CachedPart
 {
+       const Part *part;
        const GL::Texture2D *texture;
        GL::Mesh *mesh;
 
        CachedPart();
        ~CachedPart();
+};
+
+class PartCache
+{
+public:
+       typedef std::list<CachedPart> PartList;
+
+private:
+       PartList parts;
+
+public:
+       void clear();
+       void insert_special(const Part &);
+       GL::Mesh &create_mesh(const Part &, const GL::Texture2D &);
 
-       void clear_mesh();
+       const PartList &get_parts() const { return parts; }
 };
 
 } // namespace GLtk