-converted remaining classes to GameObject
[supertux.git] / src / display_manager.cpp
1 #include "display_manager.h"
2
3 #include <algorithm>
4
5 DisplayManager::DisplayManager()
6 {
7 }
8
9 DisplayManager::~DisplayManager()
10 {
11 }
12
13 void
14 DisplayManager::add_drawable(Drawable* drawable, int layer)
15 {
16   DisplayList::iterator i 
17     = std::lower_bound(displaylist.begin(), displaylist.end(), layer);
18   if(i == displaylist.end())
19     displaylist.push_back(DrawingQueueEntry(drawable, layer));
20   else
21     displaylist.insert(i, DrawingQueueEntry(drawable, layer));
22 }
23
24 void
25 DisplayManager::remove_drawable(Drawable* drawable)
26 {
27   for(DisplayList::iterator i = displaylist.begin(); i != displaylist.end();) {
28     if(i->object == drawable)
29       i = displaylist.erase(i);
30     else
31       ++i;
32   }
33 }
34
35 void
36 DisplayManager::draw()
37 {
38   for(DisplayList::iterator i = displaylist.begin(); i != displaylist.end();
39       ++i)
40     i->object->draw(viewport, i->layer);
41 }
42