diff --git a/include/RenderManager.h b/include/RenderManager.h index 9d60efc..86aa614 100644 --- a/include/RenderManager.h +++ b/include/RenderManager.h @@ -8,10 +8,20 @@ class RenderManager { public: RenderManager() {}; + /* + * Remove an object from the list of objects to be rendered + * \param renderObject The object to be removed + * \sa RenderObject + */ void remove(RenderObject* obj); + /* + * Add an object to be rendered + * \param renderObject The object to be rendered + * \sa RenderObject + */ void add(RenderObject* obj); - void renderAll(); + void renderAll(); //!< Render all objects. If the list has been modified, sorts it based on z-index first private: std::vector renderObjects; diff --git a/include/RenderObject.h b/include/RenderObject.h index 5e7de99..ba4b929 100644 --- a/include/RenderObject.h +++ b/include/RenderObject.h @@ -5,13 +5,14 @@ class RenderManager; class RenderObject { public: - virtual void draw() {} + virtual void draw() = 0; RenderObject(int zIndex, RenderManager& renderManager); ~RenderObject(); int getZIndex() { return this->zIndex; }; + //! Comparitor to compare two ptr based on z-index struct ZIndexComparator { bool operator()(RenderObject const *lhs, RenderObject const *rhs ) const { return lhs->zIndex < rhs->zIndex; diff --git a/src/RenderManager.cpp b/src/RenderManager.cpp index 634d389..dfa77f9 100644 --- a/src/RenderManager.cpp +++ b/src/RenderManager.cpp @@ -2,6 +2,7 @@ #include "RenderObject.h" #include + void RenderManager::renderAll() { if (!this->isSorted) {