X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fpartcache.h;h=71684738f0980922de8db5346d88249f53a058b5;hb=762a689d799075c0a10e1633bf95d53de80b4572;hp=9dc71bf184c8652de6b5e4939a8bab9224a2f512;hpb=56c41b294aa47a38ac3e1be70d4868f260cb4274;p=libs%2Fgltk.git diff --git a/source/partcache.h b/source/partcache.h index 9dc71bf..7168473 100644 --- a/source/partcache.h +++ b/source/partcache.h @@ -12,11 +12,13 @@ class Part; struct CachedPart { - const Part *part; - const GL::Texture2D *texture; - GL::Mesh *mesh; + const Part *part = nullptr; + const GL::Texture2D *texture = nullptr; + GL::Mesh *mesh = nullptr; - CachedPart(); + CachedPart() = default; + CachedPart(CachedPart &&); + CachedPart &operator=(CachedPart &&); ~CachedPart(); }; @@ -33,23 +35,19 @@ public: ~Rebuild() { cache.end_rebuild(); } }; - typedef std::list PartList; - private: - bool rebuilding; - PartList parts; - PartList::iterator next; - PartList::iterator current; + bool rebuilding = false; + std::vector parts; + std::vector::iterator next; + std::vector::iterator current; public: - 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; } + const std::vector &get_parts() const { return parts; } }; } // namespace GLtk