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:
+ bool rebuilding;
+ PartList parts;
+ PartList::iterator next;
+ PartList::iterator current;
+
+public:
+ PartCache();
+
+ void begin_rebuild();
+ void insert_special(const Part &);
+ GL::Mesh &create_mesh(const Part &, const GL::Texture2D &);
+ void end_rebuild();
- void clear_mesh();
+ const PartList &get_parts() const { return parts; }
};
} // namespace GLtk