X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpartcache.h;h=4eef1166d1d9e75f0bc39bd27b087350e8cbf3c1;hb=cfb830ca263defc307f9cfac74fb6771f6b7bfc6;hp=86a3f364abe21260395493f40580d278f5b5775c;hpb=319cde3c06181ba1c3619567525002926d8b4889;p=libs%2Fgltk.git diff --git a/source/partcache.h b/source/partcache.h index 86a3f36..4eef116 100644 --- a/source/partcache.h +++ b/source/partcache.h @@ -22,15 +22,31 @@ struct CachedPart class PartCache { public: + class Rebuild + { + private: + PartCache &cache; + + public: + Rebuild(PartCache &c): cache(c) { cache.begin_rebuild(); } + ~Rebuild() { cache.end_rebuild(); } + }; + typedef std::list PartList; private: + bool rebuilding; PartList parts; + PartList::iterator next; + PartList::iterator current; public: - void clear(); + PartCache(); + + void begin_rebuild(); void insert_special(const Part &); GL::Mesh &create_mesh(const Part &, const GL::Texture2D &); + void end_rebuild(); const PartList &get_parts() const { return parts; } };