#ifndef MSP_GLTK_PARTCACHE_H_
#define MSP_GLTK_PARTCACHE_H_
+#include <memory>
#include <msp/gl/mesh.h>
#include <msp/gl/texture2d.h>
#include "mspgltk_api.h"
{
const Part *part = nullptr;
const GL::Texture2D *texture = nullptr;
- GL::Mesh *mesh = nullptr;
-
- ~CachedPart();
+ std::unique_ptr<GL::Mesh> mesh;
};
class MSPGLTK_API PartCache
~Rebuild() { cache.end_rebuild(); }
};
- typedef std::list<CachedPart> PartList;
-
private:
bool rebuilding = false;
- PartList parts;
- PartList::iterator next;
- PartList::iterator current;
+ std::vector<CachedPart> parts;
+ std::vector<CachedPart>::iterator next;
+ std::vector<CachedPart>::iterator current;
public:
void begin_rebuild();
GL::Mesh &create_mesh(const Part &, const GL::Texture2D &);
void end_rebuild();
- const PartList &get_parts() const { return parts; }
+ const std::vector<CachedPart> &get_parts() const { return parts; }
};
} // namespace GLtk