public override void AddConfig()
{
ConfigOption optFullScreen = new ConfigOption( "Full Screen", "No", false );
ConfigOption optVideoMode = new ConfigOption( "Video Mode", "800 x 600", false );
ConfigOption optDisplayFrequency = new ConfigOption( "Display Frequency", "", false );
ConfigOption optColorDepth = new ConfigOption( "Color Depth", "", false );
ConfigOption optFSAA = new ConfigOption( "FSAA", "0", false );
ConfigOption optVSync = new ConfigOption( "VSync", "No", false );
ConfigOption optRTTMode = new ConfigOption( "RTT Preferred Mode", "FBO", false );
// Full Screen
optFullScreen.PossibleValues.Add( 0, "Yes" );
optFullScreen.PossibleValues.Add( 1, "No" );
// Video Mode
#region Video Modes
// get the available OpenGL resolutions
DisplayDevice dev = DisplayDevice.Default;
// add the resolutions to the config
for ( int q = 0; q < dev.AvailableResolutions.Count; q++ )
{
if ( dev.AvailableResolutions[ q ].BitsPerPixel >= 16 )
{
int width = dev.AvailableResolutions[ q ].Width;
int height = dev.AvailableResolutions[ q ].Height;
// filter out the lower resolutions and dupe frequencies
if ( width >= 640 && height >= 480 )
{
string query = string.Format( "{0} x {1}", width, height );
if ( !optVideoMode.PossibleValues.Values.Contains( query ) )
{
// add a new row to the display settings table
optVideoMode.PossibleValues.Add( optVideoMode.PossibleValues.Count, query );
}
if ( optVideoMode.PossibleValues.Count == 1 && String.IsNullOrEmpty( optVideoMode.Value ) )
{
optVideoMode.Value = query;
}
}
}
}
#endregion Video Modes
// FSAA
GetFSAALevels();
foreach ( int level in _fsaaLevels )
{
optFSAA.PossibleValues.Add( level, level.ToString() );
}
// VSync
optVSync.PossibleValues.Add( 0, "Yes" );
optVSync.PossibleValues.Add( 1, "No" );
// RTTMode
optRTTMode.PossibleValues.Add( 0, "FBO" );
optRTTMode.PossibleValues.Add( 1, "PBuffer" );
optRTTMode.PossibleValues.Add( 2, "Copy" );
optFullScreen.ConfigValueChanged += new ConfigOption<string>.ValueChanged( _configOptionChanged );
optVideoMode.ConfigValueChanged += new ConfigOption<string>.ValueChanged( _configOptionChanged );
optDisplayFrequency.ConfigValueChanged += new ConfigOption<string>.ValueChanged( _configOptionChanged );
optFSAA.ConfigValueChanged += new ConfigOption<string>.ValueChanged( _configOptionChanged );
optVSync.ConfigValueChanged += new ConfigOption<string>.ValueChanged( _configOptionChanged );
optColorDepth.ConfigValueChanged += new ConfigOption<string>.ValueChanged( _configOptionChanged );
optRTTMode.ConfigValueChanged += new ConfigOption<string>.ValueChanged( _configOptionChanged );
ConfigOptions.Add( optVideoMode );
ConfigOptions.Add( optColorDepth );
ConfigOptions.Add( optDisplayFrequency );
ConfigOptions.Add( optFullScreen );
ConfigOptions.Add( optFSAA );
ConfigOptions.Add( optVSync );
ConfigOptions.Add( optRTTMode );
_refreshConfig();
}