[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] r3701 - trunk/pingus/src/screen
From: |
grumbel at BerliOS |
Subject: |
[Pingus-CVS] r3701 - trunk/pingus/src/screen |
Date: |
Mon, 7 Jul 2008 07:22:34 +0200 |
Author: grumbel
Date: 2008-07-07 07:22:25 +0200 (Mon, 07 Jul 2008)
New Revision: 3701
Modified:
trunk/pingus/src/screen/screen_manager.cpp
trunk/pingus/src/screen/screen_manager.hpp
Log:
Move Input creation into the constructor
Modified: trunk/pingus/src/screen/screen_manager.cpp
===================================================================
--- trunk/pingus/src/screen/screen_manager.cpp 2008-07-07 05:19:53 UTC (rev
3700)
+++ trunk/pingus/src/screen/screen_manager.cpp 2008-07-07 05:22:25 UTC (rev
3701)
@@ -33,12 +33,21 @@
ScreenManager::ScreenManager()
: display_gc(new DrawingContext()),
- cursor(0)
-
+ cursor(0)
{
assert(instance_ == 0);
instance_ = this;
cached_action = CA_NONE;
+
+ input_manager = std::auto_ptr<Input::Manager>(new Input::Manager());
+
+ if (controller_file.empty())
+ input_controller =
std::auto_ptr<Input::Controller>(input_manager->create_controller(Pathname("controller/default.scm",
+
Pathname::DATA_PATH)));
+ else
+ input_controller =
std::auto_ptr<Input::Controller>(input_manager->create_controller(Pathname(controller_file,
+
Pathname::SYSTEM_PATH)));
+
}
ScreenManager::~ScreenManager ()
@@ -50,18 +59,6 @@
void
ScreenManager::display()
{
- Input::Manager input_manager;
-
- Input::Controller* input_controller = 0;
-
- if (controller_file.empty())
- input_controller =
input_manager.create_controller(Pathname("controller/default.scm",
-
Pathname::DATA_PATH));
- else
- input_controller =
input_manager.create_controller(Pathname(controller_file,
-
Pathname::SYSTEM_PATH));
-
-
show_swcursor(swcursor_enabled);
DeltaManager delta_manager;
DeltaManager frame_timer;
@@ -87,7 +84,7 @@
last_screen = get_current_screen();
// update the input
- input_manager.update(time_delta);
+ input_manager->update(time_delta);
std::vector<Input::Event> events = input_controller->poll_events();
for(std::vector<Input::Event>::iterator i = events.begin();
i != events.end() && last_screen == get_current_screen();
@@ -156,8 +153,6 @@
SDL_Delay(static_cast<Uint32>(1000 *((1 / desired_fps) -
current_frame_time)));
}
}
-
- delete input_controller;
}
ScreenPtr
Modified: trunk/pingus/src/screen/screen_manager.hpp
===================================================================
--- trunk/pingus/src/screen/screen_manager.hpp 2008-07-07 05:19:53 UTC (rev
3700)
+++ trunk/pingus/src/screen/screen_manager.hpp 2008-07-07 05:22:25 UTC (rev
3701)
@@ -19,10 +19,14 @@
#include "../pingus.hpp"
#include <memory>
-#include "SDL.h"
#include <boost/smart_ptr.hpp>
#include <vector>
+namespace Input {
+class Manager;
+class Controller;
+}
+
class Cursor;
class Size;
class DrawingContext;
@@ -35,7 +39,9 @@
private:
static ScreenManager* instance_;
- SDL_Surface* screen;
+ std::auto_ptr<Input::Manager> input_manager;
+ std::auto_ptr<Input::Controller> input_controller;
+
std::auto_ptr<DrawingContext> display_gc;
Cursor* cursor;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] r3701 - trunk/pingus/src/screen,
grumbel at BerliOS <=