private void InitConfigOptions()
{
var optDevice = new ConfigOption( "Rendering Device", "", false );
var optVideoMode = new ConfigOption("Video Mode", "800 x 600 @ 32-bit color", false);
var optFullScreen = new ConfigOption("Full Screen", "No", false);
optFullScreen.PossibleValues.Add(0, "Yes");
optFullScreen.PossibleValues.Add(1, "No");
var optResourceCeationPolicy = new ConfigOption( "Resource Creation Policy", "", false );
optResourceCeationPolicy.PossibleValues.Add( 0, "Create on all devices" );
optResourceCeationPolicy.PossibleValues.Add( 1, "Create on active device" );
switch ( _resourceManager.CreationPolicy )
{
case D3D9ResourceManager.ResourceCreationPolicy.CreateOnActiveDevice:
optResourceCeationPolicy.Value = "Create on active device";
break;
case D3D9ResourceManager.ResourceCreationPolicy.CreateOnAllDevices:
optResourceCeationPolicy.Value = "Create on all devices";
break;
default:
optResourceCeationPolicy.Value = "N/A";
break;
}
var driverList = D3DHelper.GetDriverInfo(_pD3D);
foreach (var driver in driverList)
{
optDevice.PossibleValues.Add(driver.AdapterNumber, driver.DriverDescription);
}
// Make first one default
optDevice.Value = driverList.First().DriverDescription;
var optVSync = new ConfigOption("VSync", "No", false);
optVSync.PossibleValues.Add(0, "Yes");
optVSync.PossibleValues.Add(1, "No");
var optVSyncInterval = new ConfigOption( "VSync Interval", "1", false );
optVSyncInterval.PossibleValues.Add(0, "1");
optVSyncInterval.PossibleValues.Add(1, "2");
optVSyncInterval.PossibleValues.Add(3, "3");
optVSyncInterval.PossibleValues.Add(4, "4");
var optAa = new ConfigOption("FSAA", "None", false);
optAa.PossibleValues.Add(0, "None");
var optFPUMode = new ConfigOption("Floating-point mode", "Fastest", false);
#if AXIOM_DOUBLE_PRECISION
optFPUMode.Value = "Consistent";
#else
optFPUMode.Value = "Fastest";
#endif
optFPUMode.PossibleValues.Clear();
optFPUMode.PossibleValues.Add(0, "Fastest");
optFPUMode.PossibleValues.Add(1, "Consistent");
var optNVPerfHUD = new ConfigOption( "Allow NVPerfHUD", "No", false );
optNVPerfHUD.PossibleValues.Add( 0, "Yes" );
optNVPerfHUD.PossibleValues.Add( 1, "No" );
var optSRGB = new ConfigOption( "sRGB Gamma Conversion", "No", false );
optSRGB.PossibleValues.Add(0, "Yes");
optSRGB.PossibleValues.Add(1, "No");
var optMultiDeviceMemHint = new ConfigOption( "Multi device memory hint", "Use minimum system memory", false );
optMultiDeviceMemHint.PossibleValues.Add(0, "Use minimum system memory");
optMultiDeviceMemHint.PossibleValues.Add(1, "Auto hardware buffers management");
// RT options ommited here
// Axiom specific registering
optDevice.ConfigValueChanged += ConfigOptionChanged;
optVideoMode.ConfigValueChanged += ConfigOptionChanged;
optFullScreen.ConfigValueChanged += ConfigOptionChanged;
optResourceCeationPolicy.ConfigValueChanged += ConfigOptionChanged;
optVSync.ConfigValueChanged += ConfigOptionChanged;
optVSyncInterval.ConfigValueChanged += ConfigOptionChanged;
optAa.ConfigValueChanged += ConfigOptionChanged;
optFPUMode.ConfigValueChanged += ConfigOptionChanged;
optNVPerfHUD.ConfigValueChanged += ConfigOptionChanged;
optSRGB.ConfigValueChanged += ConfigOptionChanged;
optMultiDeviceMemHint.ConfigValueChanged += ConfigOptionChanged;
ConfigOptions.Add( optDevice );
ConfigOptions.Add( optVideoMode );
ConfigOptions.Add( optFullScreen );
ConfigOptions.Add( optResourceCeationPolicy );
ConfigOptions.Add( optVSync );
ConfigOptions.Add( optVSyncInterval );
ConfigOptions.Add( optAa );
ConfigOptions.Add( optFPUMode );
ConfigOptions.Add( optNVPerfHUD );
ConfigOptions.Add( optSRGB );
ConfigOptions.Add( optMultiDeviceMemHint );
// Axiom specific registering
RefreshD3DSettings();
}