private void ConfigOptionChanged( string name, string value )
{
LogManager.Instance.Write( "D3D9 : RenderSystem Option: {0} = {1}", name, value );
var viewModeChanged = false;
// Find option
//var opt = ConfigOptions[ name ];
// Refresh other options if D3DDriver changed
switch ( name )
{
case "Rendering Device":
RefreshD3DSettings();
break;
case "Full Screen":
{
// Video mode is applicable
var opt = ConfigOptions[ "Video Mode" ];
if ( opt.Value == "" )
{
opt.Value = "800 x 600 @ 32-bit colour";
viewModeChanged = true;
}
}
break;
case "FSAA":
{
var values = value.Split( new[] { ' ' } );
_fsaaSamples = 0;
int.TryParse( values[ 0 ], out _fsaaSamples );
if (values.Length > 1)
_fsaaHint = values[ 1 ];
}
break;
case "VSync":
vSync = ( value == "Yes" );
break;
case "VSync Interval":
vSyncInterval = int.Parse( value );
break;
case "Allow NVPerfHUD":
_useNVPerfHUD = ( value == "Yes" );
break;
case "Resource Creation Policy":
switch ( value )
{
case "Create on active device":
_resourceManager.CreationPolicy = D3D9ResourceManager.ResourceCreationPolicy.CreateOnActiveDevice;
break;
case "Create on all devices":
_resourceManager.CreationPolicy = D3D9ResourceManager.ResourceCreationPolicy.CreateOnAllDevices;
break;
}
break;
case "Multi device memory hint":
switch ( value )
{
case "Use minimum system memory":
_resourceManager.AutoHardwareBufferManagement = false;
break;
case "Auto hardware buffers management":
_resourceManager.AutoHardwareBufferManagement = true;
break;
}
break;
}
if (viewModeChanged || name == "Video Mode")
{
RefreshFsaaOptions();
}
}