private void RefreshFsaaOptions()
{
// Reset FSAA Options
var optFsaa = ConfigOptions[ "FSAA" ];
var curFsaa = optFsaa.Value;
optFsaa.PossibleValues.Clear();
#warning Is this correct? Ogre adds the string "0" here
optFsaa.PossibleValues.Add( 0, "None" );
var optDevice = ConfigOptions["Rendering Device"];
var driver = Direct3DDrivers[ optDevice.Value ];
if ( driver != null )
{
var optVideoMode = ConfigOptions[ "Video Mode" ];
var videoMode = driver.VideoModeList[ optVideoMode.Value ];
if ( videoMode != null )
{
for (var n = MultisampleType.TwoSamples; n <= MultisampleType.SixteenSamples; n++)
{
int numLevels;
if ( !CheckMultiSampleQuality(n, out numLevels, videoMode.Format, driver.AdapterNumber, DeviceType.Hardware, true ) )
continue;
optFsaa.PossibleValues.Add( optFsaa.PossibleValues.Count, n.ToString() );
if (n >= MultisampleType.EightSamples)
optFsaa.PossibleValues.Add(optFsaa.PossibleValues.Count, String.Format("{0} [Quality]", n));
}
}
}
// Reset FSAA to none if previous doesn't avail in new possible values
if ( optFsaa.PossibleValues.Values.Contains( curFsaa ) == false )
{
optFsaa.Value = "0";
}
}