Original Post
class RenderQueue
{
public:
/* type define */
typedef std::vector<Material*> MaterialSet;
typedef std::multimap<MaterialSet, Movable*> RenderMap;
typedef std::pair<MaterialSet, Movable*> RenderMapPair;
typedef std::multimap<MaterialSet, Movable*> ::iterator RenderMapIterator;
void addMovable(MaterialSet, Movable *);
void render();
private:
RenderMap m_renderList;
std::vector<MaterialSet> m_materialSetList;
GraphicDevice * m_device;
};
void RenderQueue::addMovable(MaterialSet material, Movable *Movable)
{
m_renderList.insert(RenderMapPair(material, Movable));
}