src/Graphics/Display.cc
branchnew_graphics
changeset 413 7dddc163489a
parent 412 721c60072091
child 414 cede5463b845
--- a/src/Graphics/Display.cc	Wed Jan 21 23:07:22 2009 +0200
+++ b/src/Graphics/Display.cc	Wed Jan 21 23:25:29 2009 +0200
@@ -10,12 +10,15 @@
     config(config), 
     fullscreen_resolution(0, 0),
     update_timer(GRAPHICS_UPDATE_INTERVAL_MS), 
-    target(NULL)
+    current_view(NULL)
 {
     // connect timer signal
     slots.connect(update_timer.sig_tick(), this, &Display::on_update);
     slots.connect(this->sig_resize(), this, &Display::on_window_resize);
 
+    // enable timer
+    update_timer.start();
+
     // set correct fullscreen resolution
     if (config.fullscreen) {
         fullscreen_resolution = config.resolution;
@@ -49,6 +52,14 @@
     return *best_mode;
 }
 
+void Display::setView (View *view) {
+    this->current_view = view;
+    
+    // resize to fill display
+    if (view)
+        view->resize(PixelArea(0, 0, get_width(), get_height()));
+}
+
 void Display::toggle_fullscreen (void) {
     if (is_fullscreen()) {
         // enter windowed mode
@@ -64,9 +75,9 @@
     (void) dt;
 
     // do we have something to draw?
-    if (target) {
+    if (current_view) {
         // draw it
-        target->draw(*this);
+        current_view->draw(*this);
 
         // flip buffers, sync
         flip(1);
@@ -80,6 +91,10 @@
     // ignore resize in fullscreen mode
     if (is_fullscreen())
         return;
+
+    // resize view
+    if (current_view)
+        current_view->resize(PixelArea(0, 0, new_x, new_y));
 }