- made some changes for joystick in menu. better?
[supertux.git] / src / display_manager.cpp
1 //  $Id$
2 //
3 //  SuperTux -  A Jump'n Run
4 //  Copyright (C) 2004 Matthias Braun <matze@braunis.de
5 //
6 //  This program is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU General Public License
8 //  as published by the Free Software Foundation; either version 2
9 //  of the License, or (at your option) any later version.
10 //
11 //  This program is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 //  GNU General Public License for more details.
15 //
16 //  You should have received a copy of the GNU General Public License
17 //  along with this program; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
19 #include "display_manager.h"
20
21 #include <algorithm>
22
23 DisplayManager::DisplayManager()
24 {
25 }
26
27 DisplayManager::~DisplayManager()
28 {
29 }
30
31 void
32 DisplayManager::add_drawable(Drawable* drawable, int layer)
33 {
34   DisplayList::iterator i 
35     = std::lower_bound(displaylist.begin(), displaylist.end(), layer);
36   if(i == displaylist.end())
37     displaylist.push_back(DrawingQueueEntry(drawable, layer));
38   else
39     displaylist.insert(i, DrawingQueueEntry(drawable, layer));
40 }
41
42 void
43 DisplayManager::remove_drawable(Drawable* drawable)
44 {
45   for(DisplayList::iterator i = displaylist.begin(); i != displaylist.end();) {
46     if(i->object == drawable)
47       i = displaylist.erase(i);
48     else
49       ++i;
50   }
51 }
52
53 void
54 DisplayManager::draw()
55 {
56   for(DisplayList::iterator i = displaylist.begin(); i != displaylist.end();
57       ++i)
58     i->object->draw(viewport, i->layer);
59 }
60