X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpartcache.h;h=969912431271d501b68267f9f09bb7b05f0427b6;hb=caa04d76bc031dd0c4a4157732deb340d934ceeb;hp=b856f9da47a486151f3a10b62c51f1f0c60fb02c;hpb=1aa6cd9b865e366737dcc9d2d36c4f8faed5bc4f;p=libs%2Fgltk.git diff --git a/source/partcache.h b/source/partcache.h index b856f9d..9699124 100644 --- a/source/partcache.h +++ b/source/partcache.h @@ -7,15 +7,38 @@ 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 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