/// <summary>Called when the multisample type changes</summary> private void OnMultisampleTypeChanged(object sender, System.EventArgs e) { ComboBox cb = sender as ComboBox; MultiSampleType mst = (MultiSampleType)cb.GetSelectedData(); globalSettings.presentParams.MultiSample = mst; EnumDeviceSettingsCombo combo = GetCurrentDeviceSettingsCombo(); int maxQuality = 0; for (int i = 0; i < combo.multiSampleTypeList.Count; i++) { MultiSampleType msType = (MultiSampleType)combo.multiSampleTypeList[i]; if (msType == mst) { maxQuality = (int)combo.multiSampleQualityList[i]; } } // We have the max quality now, add to our list multiSampleQualityCombo.Clear(); for (int i = 0; i < maxQuality; i++) { if (!multiSampleQualityCombo.ContainsItem(i.ToString())) { multiSampleQualityCombo.AddItem(i.ToString(), i); } } multiSampleQualityCombo.SetSelectedByData(globalSettings.presentParams.MultiSampleQuality); OnMultisampleQualityChanged(multiSampleQualityCombo, e); }
/// <summary>Called when the depth stencil changes</summary> private void OnDepthStencilChanged(object sender, System.EventArgs e) { ComboBox cb = sender as ComboBox; DepthFormat stencilFormat = (DepthFormat)cb.GetSelectedData(); if (globalSettings.presentParams.EnableAutoDepthStencil) { globalSettings.presentParams.AutoDepthStencilFormat = stencilFormat; } EnumDeviceSettingsCombo combo = GetCurrentDeviceSettingsCombo(); // Remove all of the multisample items and add the new ones multiSampleTypeCombo.Clear(); foreach (MultiSampleType mst in combo.multiSampleTypeList) { bool conflictFound = false; foreach (EnumDepthStencilMultisampleConflict c in combo.depthStencilConflictList) { if (c.DepthStencilFormat == stencilFormat && c.MultisampleType == mst) { conflictFound = true; break; } } if (!conflictFound) { if (!multiSampleTypeCombo.ContainsItem(mst.ToString())) { multiSampleTypeCombo.AddItem(mst.ToString(), mst); } } } // Select the correct multisampling type multiSampleTypeCombo.SetSelectedByData(globalSettings.presentParams.MultiSample); OnMultisampleTypeChanged(multiSampleTypeCombo, e); }