/* orxonox - the future of 3D-vertical-scrollers Copyright (C) 2004 orx This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. ### File Specific: main-programmer: ... co-programmer: ... */ //#define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WORLD_ENTITY #include "render_2d.h" #include "graphics_engine.h" #include "class_list.h" #include "list.h" #include "element_2d.h" using namespace std; /** * standard constructor */ Render2D::Render2D () { this->setClassID(CL_RENDER_2D, "Render2D"); this->setName("Render2D"); this->element2DList = new tList; } /** * the singleton reference to this class */ Render2D* Render2D::singletonRef = NULL; /** * standard deconstructor */ Render2D::~Render2D () { delete this->element2DList; Render2D::singletonRef = NULL; } /** * registers a 2D-element to the 2D-Renderer * @param element2D the element to registers * * do not use this function by yourself, because this is used by Element2D's constructor */ void Render2D::registerElement2D(Element2D* element2D) { this->element2DList->add(element2D); } /** * unregisters a 2D-element from the 2D-Renderer * @param element2D The element to unregister * * do not use this function by yourself, because this is used by Element2D's destructor */ void Render2D::unregisterElement2D(Element2D* element2D) { this->element2DList->remove(element2D); } void Render2D::draw() const { GraphicsEngine::enter2DMode(); tIterator* iterator = this->element2DList->getIterator(); Element2D* elem = iterator->nextElement(); while (elem != NULL) { if (elem->isVisible()) elem->draw(); elem = iterator->nextElement(); } delete iterator; GraphicsEngine::leave2DMode(); }