]> git.sesse.net Git - ccbs/blobdiff - bigscreen/rotatescreen.cpp
Fix "slowly to red" fading (aka same_fade) when we have a forced transition.
[ccbs] / bigscreen / rotatescreen.cpp
index 2ae782218516d9024abd8f8ff3a867da4c100310..a7d3a5c01b34a89b9f6aef7d615d5591526afeaa 100644 (file)
@@ -116,11 +116,11 @@ void RotateScreen::draw(unsigned char *buf)
                        gettimeofday(&last_update, NULL);
                }
 
-               if (current_screen != old_current_screen || subscreens[current_screen].screen->check_invalidated()) {
+               if (!valid || current_screen != old_current_screen || subscreens[current_screen].screen->check_invalidated()) {
                        // initialize a fade
                        in_fade = true;
                        fade_found_start_time = false;
-                       same_fade = (current_screen == old_current_screen);
+                       same_fade = (current_screen == old_current_screen) || force;
                        
                        memcpy(fadefrom_buf, subscreens[old_current_screen].buf, 800 * 600 * 4);
 
@@ -153,6 +153,8 @@ void RotateScreen::add_screen(GenericScreen *screen)
        ss.buf = new unsigned char[800 * 600 * 4];
        ss.screen = screen;
 
+       screen->draw(ss.buf);
+       
        subscreens.push_back(ss);
 }