diff --git a/stepmania/src/RageDisplay.cpp b/stepmania/src/RageDisplay.cpp index 1aba9019da..c03c4d3c70 100644 --- a/stepmania/src/RageDisplay.cpp +++ b/stepmania/src/RageDisplay.cpp @@ -77,6 +77,13 @@ RageDisplay::RageDisplay( bool windowed, int width, int height, int bpp, int rat SetupOpenGL(); + // Log driver details + LOG->Trace("OpenGL driver:"); + LOG->Trace(" Vendor: %s", glGetString(GL_VENDOR)); + LOG->Trace(" Renderer: %s", glGetString(GL_RENDERER)); + LOG->Trace(" Version: %s", glGetString(GL_VERSION)); + + /* Log this, so if people complain that the radar looks bad on their * system we can compare them: */ glGetFloatv(GL_LINE_WIDTH_RANGE, m_oglspecs->line_range); diff --git a/stepmania/src/ScreenDemonstration.cpp b/stepmania/src/ScreenDemonstration.cpp index ee849d336a..ad62e58b42 100644 --- a/stepmania/src/ScreenDemonstration.cpp +++ b/stepmania/src/ScreenDemonstration.cpp @@ -54,11 +54,7 @@ bool SetUpSongOptions() // always return true. { Song* pSong = SONGMAN->GetRandomSong(); if( pSong == NULL ) // returns NULL there are no songs - { - // we didn't find a song. Abort demonstration. - SCREENMAN->SendMessageToTopScreen( SM_GoToNextScreen, 0 ); - return true; - } + return true; // we need to detect this and abort demonstration later if( pSong->m_apNotes.empty() ) continue; // skip @@ -141,6 +137,12 @@ ScreenDemonstration::ScreenDemonstration() : ScreenGameplay(SetUpSongOptions()) LOG->Trace( "ScreenDemonstration::ScreenDemonstration()" ); GAMESTATE->m_bDemonstration = true; + if( GAMESTATE->m_pCurSong == NULL ) // we didn't find a song. + { + this->SendScreenMessage( SM_GoToNextScreen, 0 ); // Abort demonstration. + return; + } + m_sprDemonstrationOverlay.Load( THEME->GetPathTo("Graphics","demonstration overlay") ); m_sprDemonstrationOverlay.SetXY( CENTER_X, CENTER_Y ); diff --git a/stepmania/src/ScreenGameplay.cpp b/stepmania/src/ScreenGameplay.cpp index 4634573ee9..c4e290aafc 100644 --- a/stepmania/src/ScreenGameplay.cpp +++ b/stepmania/src/ScreenGameplay.cpp @@ -100,6 +100,9 @@ ScreenGameplay::ScreenGameplay( bool bDemonstration ) { LOG->Trace( "ScreenGameplay::ScreenGameplay()" ); + if( GAMESTATE->m_pCurSong == NULL ) + return; // ScreenDemonstration will move us to the next scren. We just need to survive for one update without crashing. + int p; for( p=0; p= 5) pri = ABOVE_NORMAL_PRIORITY_CLASS; +#include + /* Be sure to boost the app, not the thread, to make sure the * sound thread stays higher priority than the main thread. */ SetPriorityClass(GetCurrentProcess(), pri);