/* ======================== idMenuScreen_Shell_Resolution::ShowScreen ======================== */ void idMenuScreen_Shell_Resolution::ShowScreen( const mainMenuTransition_t transitionType ) { originalOption.fullscreen = r_fullscreen.GetInteger(); originalOption.vidmode = r_vidMode.GetInteger(); idList< idList< idStr, TAG_IDLIB_LIST_MENU >, TAG_IDLIB_LIST_MENU > menuOptions; menuOptions.Alloc().Alloc() = "#str_swf_disabled"; optionData.Append( optionData_t( 0, 0 ) ); int viewIndex = 0; idList< idList<vidMode_t> > displays; for ( int displayNum = 0 ; ; displayNum++ ) { idList<vidMode_t> & modeList = displays.Alloc(); if ( !R_GetModeListForDisplay( displayNum, modeList ) ) { displays.RemoveIndex( displays.Num() - 1 ); break; } } for ( int displayNum = 0 ; displayNum < displays.Num(); displayNum++ ) { idList<vidMode_t> & modeList = displays[displayNum]; for ( int i = 0; i < modeList.Num(); i++ ) { const optionData_t thisOption( displayNum + 1, i ); if ( originalOption == thisOption ) { viewIndex = menuOptions.Num(); } idStr str; if ( displays.Num() > 1 ) { str.Append( va( "%s %i: ", idLocalization::GetString( "#str_swf_monitor" ), displayNum+1 ) ); } str.Append( va( "%4i x %4i", modeList[i].width, modeList[i].height ) ); if ( modeList[i].displayHz != 60 ) { str.Append( va( " @ %dhz", modeList[i].displayHz ) ); } menuOptions.Alloc().Alloc() = str; optionData.Append( thisOption ); } } options->SetListData( menuOptions ); options->SetViewIndex( viewIndex ); const int topOfLastPage = menuOptions.Num() - NUM_SETTING_OPTIONS; if ( viewIndex < NUM_SETTING_OPTIONS ) { options->SetViewOffset( 0 ); options->SetFocusIndex( viewIndex ); } else if ( viewIndex >= topOfLastPage ) { options->SetViewOffset( topOfLastPage ); options->SetFocusIndex( viewIndex - topOfLastPage ); } else { options->SetViewOffset( viewIndex ); options->SetFocusIndex( 0 ); } idMenuScreen::ShowScreen( transitionType ); }
/* ======================== idMenuScreen_Shell_SystemOptions::idMenuDataSource_SystemSettings::LoadData ======================== */ void idMenuScreen_Shell_SystemOptions::idMenuDataSource_SystemSettings::LoadData() { originalFramerate = com_engineHz.GetInteger(); originalAntialias = r_multiSamples.GetInteger(); originalMotionBlur = r_motionBlur.GetInteger(); originalVsync = r_swapInterval.GetInteger(); originalBrightness = r_lightScale.GetFloat(); originalVolume = s_volume_dB.GetFloat(); const int fullscreen = r_fullscreen.GetInteger(); if ( fullscreen > 0 ) { R_GetModeListForDisplay( fullscreen - 1, modeList ); } else { modeList.Clear(); } }
/* ======================== idMenuScreen_Shell_SystemOptions::idMenuDataSource_SystemSettings::LoadData ======================== */ void idMenuScreen_Shell_SystemOptions::idMenuDataSource_SystemSettings::LoadData() { originalFramerate = com_engineHz.GetInteger(); originalAntialias = r_antiAliasing.GetInteger(); originalMotionBlur = r_motionBlur.GetInteger(); originalVsync = r_swapInterval.GetInteger(); originalBrightness = r_exposure.GetFloat(); originalVolume = s_volume_dB.GetFloat(); // RB begin originalShadowMapping = r_useShadowMapping.GetInteger(); // RB end const int fullscreen = r_fullscreen.GetInteger(); if( fullscreen > 0 ) { R_GetModeListForDisplay( fullscreen - 1, modeList ); } else { modeList.Clear(); } }