コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }