#ifndef __RENDERQUEUE_H #define __RENDERQUEUE_H #include "common.h" namespace CHCDemo { class RenderState; /** This class implements a render queue that sorts entities according to their materials. */ class RenderQueue { public: /** Default constructor */ RenderQueue(); /** Constructor taking a render queue */ RenderQueue(RenderState *state); /** Enqueues an entity */ void Enqueue(SceneEntity *entity); /** Renders the contents of the render queue. */ void Render(); /** Sets the current render state */ void SetRenderState(RenderState *state); /** Clears the render queue */ void Clear(); protected: /** Sorts the render queue according to some parameters. */ void Sort(); /////////// RenderState *mState; SceneEntityContainer mEntities; int mMinSizeForSorting; }; } #endif