From 2ff000fc8a2e588abeec88963a773e1f1bc9b260 Mon Sep 17 00:00:00 2001 From: Chris Danford Date: Tue, 7 Feb 2006 00:55:03 +0000 Subject: [PATCH] give up on auto AR. Handling the AR when the resolution is falling back is more complicated than it's worth. --- stepmania/src/PrefsManager.cpp | 3 +++ stepmania/src/PrefsManager.h | 1 + stepmania/src/ScreenDimensions.cpp | 24 +++------------------- stepmania/src/ScreenDimensions.h | 15 +++++++------- stepmania/src/ScreenOptionsMasterPrefs.cpp | 4 ++-- stepmania/src/StepMania.cpp | 2 +- 6 files changed, 17 insertions(+), 32 deletions(-) diff --git a/stepmania/src/PrefsManager.cpp b/stepmania/src/PrefsManager.cpp index 96ea056754..510f9cfdbc 100644 --- a/stepmania/src/PrefsManager.cpp +++ b/stepmania/src/PrefsManager.cpp @@ -154,6 +154,7 @@ PrefsManager::PrefsManager() : m_bWindowed ( "Windowed", TRUE_IF_DEBUG ), m_iDisplayWidth ( "DisplayWidth", 640 ), m_iDisplayHeight ( "DisplayHeight", 480 ), + m_fDisplayAspectRatio ( "DisplayAspectRatio", 4/3.f ), m_iDisplayColorDepth ( "DisplayColorDepth", 16 ), m_iTextureColorDepth ( "TextureColorDepth", 16 ), m_iMovieColorDepth ( "MovieColorDepth", 16 ), @@ -430,6 +431,8 @@ void PrefsManager::ReadPrefsFromIni( const IniFile &ini, const RString &sSection IPreference::ReadAllPrefsFromNode( ini.GetChild(sSection) ); // validate + if( m_fDisplayAspectRatio < 0 ) + m_fDisplayAspectRatio.Set( 4/3.f ); m_iSongsPerPlay.Set( clamp(m_iSongsPerPlay.Get(),0,MAX_SONGS_PER_PLAY) ); m_RandomBackgroundMode.Set( (RandomBackgroundMode)clamp((int)m_RandomBackgroundMode.Get(),0,(int)NUM_RandomBackgroundMode-1) ); } diff --git a/stepmania/src/PrefsManager.h b/stepmania/src/PrefsManager.h index a8eacf5ff7..50c1170b46 100644 --- a/stepmania/src/PrefsManager.h +++ b/stepmania/src/PrefsManager.h @@ -43,6 +43,7 @@ public: Preference m_bWindowed; Preference m_iDisplayWidth; Preference m_iDisplayHeight; + Preference m_fDisplayAspectRatio; Preference m_iDisplayColorDepth; Preference m_iTextureColorDepth; Preference m_iMovieColorDepth; diff --git a/stepmania/src/ScreenDimensions.cpp b/stepmania/src/ScreenDimensions.cpp index 05bd069d86..cbca4605a2 100644 --- a/stepmania/src/ScreenDimensions.cpp +++ b/stepmania/src/ScreenDimensions.cpp @@ -27,24 +27,6 @@ static ThemeMetric THEME_SCREEN_HEIGHT("Common","ScreenHeight"); */ #define THEME_NATIVE_ASPECT (THEME_SCREEN_WIDTH/THEME_SCREEN_HEIGHT) -#define ASPECT_AUTO -1 -static Preference g_fDisplayAspectRatio( "DisplayAspectRatio", ASPECT_AUTO ); - -float ScreenDimensions::GetScreenAspectRatio() -{ - float fAspect = g_fDisplayAspectRatio; - if( fAspect == ASPECT_AUTO ) - { - // Lua values will be reloaded after the display is created, so any value we - // return before DISPLAY is created will never be used. - if( DISPLAY ) - fAspect = DISPLAY->GetMonitorAspectRatio(); - else - fAspect = 4/3.f; - } - return fAspect; -} - float ScreenDimensions::GetThemeAspectRatio() { return THEME_NATIVE_ASPECT; @@ -52,7 +34,7 @@ float ScreenDimensions::GetThemeAspectRatio() float ScreenDimensions::GetScreenWidth() { - float fAspect = GetScreenAspectRatio(); + float fAspect = PREFSMAN->m_fDisplayAspectRatio; float fScale = 1; if( fAspect > THEME_NATIVE_ASPECT ) fScale = fAspect / THEME_NATIVE_ASPECT; @@ -62,7 +44,7 @@ float ScreenDimensions::GetScreenWidth() float ScreenDimensions::GetScreenHeight() { - float fAspect = GetScreenAspectRatio(); + float fAspect = PREFSMAN->m_fDisplayAspectRatio; float fScale = 1; if( fAspect < THEME_NATIVE_ASPECT ) fScale = THEME_NATIVE_ASPECT / fAspect; @@ -86,7 +68,7 @@ void ScreenDimensions::ReloadScreenDimensions() LUA->SetGlobal( "SCREEN_CENTER_Y", (int) SCREEN_CENTER_Y ); } -LuaFunction_NoArgs( GetScreenAspectRatio, ScreenDimensions::GetScreenAspectRatio() ); +LuaFunction_NoArgs( GetScreenAspectRatio, PREFSMAN->m_fDisplayAspectRatio ); LuaFunction_NoArgs( GetThemeAspectRatio, ScreenDimensions::GetThemeAspectRatio() ); diff --git a/stepmania/src/ScreenDimensions.h b/stepmania/src/ScreenDimensions.h index bb1f3809de..fb093ea7ae 100644 --- a/stepmania/src/ScreenDimensions.h +++ b/stepmania/src/ScreenDimensions.h @@ -5,7 +5,6 @@ namespace ScreenDimensions { - float GetScreenAspectRatio(); float GetThemeAspectRatio(); float GetScreenWidth(); float GetScreenHeight(); @@ -15,17 +14,17 @@ namespace ScreenDimensions #define SCREEN_WIDTH ScreenDimensions::GetScreenWidth() #define SCREEN_HEIGHT ScreenDimensions::GetScreenHeight() -#define SCREEN_LEFT (0) -#define SCREEN_RIGHT (SCREEN_WIDTH) -#define SCREEN_TOP (0) -#define SCREEN_BOTTOM (SCREEN_HEIGHT) +#define SCREEN_LEFT (0) +#define SCREEN_RIGHT (SCREEN_WIDTH) +#define SCREEN_TOP (0) +#define SCREEN_BOTTOM (SCREEN_HEIGHT) -#define SCREEN_CENTER_X (SCREEN_LEFT + (SCREEN_RIGHT - SCREEN_LEFT)/2.0f) -#define SCREEN_CENTER_Y (SCREEN_TOP + (SCREEN_BOTTOM - SCREEN_TOP)/2.0f) +#define SCREEN_CENTER_X (SCREEN_LEFT + (SCREEN_RIGHT - SCREEN_LEFT)/2.0f) +#define SCREEN_CENTER_Y (SCREEN_TOP + (SCREEN_BOTTOM - SCREEN_TOP)/2.0f) #define FullScreenRectF RectF(SCREEN_LEFT,SCREEN_TOP,SCREEN_RIGHT,SCREEN_BOTTOM) -#define ARROW_SIZE (64) +#define ARROW_SIZE (64) #endif diff --git a/stepmania/src/ScreenOptionsMasterPrefs.cpp b/stepmania/src/ScreenOptionsMasterPrefs.cpp index c3aeb00568..f73c24cd9a 100644 --- a/stepmania/src/ScreenOptionsMasterPrefs.cpp +++ b/stepmania/src/ScreenOptionsMasterPrefs.cpp @@ -506,7 +506,7 @@ static void RefreshRate( int &sel, bool ToSel, const ConfOption *pConfOption ) static void DisplayAspectRatio( int &sel, bool ToSel, const ConfOption *pConfOption ) { - const float mapping[] = { -1,3/4.f,1,4/3.0f,16/10.0f,16/9.f, 8/3.f }; + const float mapping[] = { 3/4.f,1,4/3.0f,16/10.0f,16/9.f, 8/3.f }; MoveMap( sel, pConfOption, ToSel, mapping, ARRAYSIZE(mapping) ); } @@ -614,7 +614,7 @@ static void InitializeConfOptions() g_ConfOptions.back().m_iEffects = OPT_APPLY_GRAPHICS; ADD( ConfOption( "DisplayResolution", DisplayResolutionM, DisplayResolutionChoices ) ); g_ConfOptions.back().m_iEffects = OPT_APPLY_GRAPHICS | OPT_APPLY_ASPECT_RATIO; - ADD( ConfOption( "DisplayAspectRatio", DisplayAspectRatio, "Auto","|3:4","|1:1","|4:3","|16:10","|16:9","|8:3" ) ); + ADD( ConfOption( "DisplayAspectRatio", DisplayAspectRatio, "|3:4","|1:1","|4:3","|16:10","|16:9","|8:3" ) ); g_ConfOptions.back().m_iEffects = OPT_APPLY_ASPECT_RATIO; ADD( ConfOption( "DisplayColorDepth", DisplayColorDepth, "16bit","32bit" ) ); g_ConfOptions.back().m_iEffects = OPT_APPLY_GRAPHICS; diff --git a/stepmania/src/StepMania.cpp b/stepmania/src/StepMania.cpp index b3e54ed032..8195f27be8 100644 --- a/stepmania/src/StepMania.cpp +++ b/stepmania/src/StepMania.cpp @@ -102,7 +102,7 @@ void StepMania::GetPreferredVideoModeParams( VideoModeParams ¶msOut ) CommonMetrics::WINDOW_TITLE, THEME->GetPathG("Common","window icon"), PREFSMAN->m_bPAL, - ScreenDimensions::GetScreenAspectRatio() + PREFSMAN->m_fDisplayAspectRatio ); }