--- 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));
}