Example #1
0
        private void StartUpDialog_Load(object sender, EventArgs e)
        {
            var d3d = new Direct3D();

            if (d3d.Adapters.Count == 0)
            {
                return;
            }

            //update the display listview
            var   adapter = d3d.Adapters[0];
            int   currentDisplayModeIndex = 0, selectedDisplayModeIndex = -1;
            int   i   = 0;
            float dpi = this.CreateGraphics().DpiX;

            DisplayModesView.Columns[0].Width = DisplayModesView.Width - (int)(25.0f * (dpi / 96));
            Height += (int)(20 * dpi / 96.0);

            foreach (var dm in adapter.GetDisplayModes(Format.X8R8G8B8))
            {
                var item = new ListViewItem(String.Format("{0} x {1}   {2} Hz",
                                                          dm.Width.ToString().PadLeft(4, 'x').Replace("x", "  "),
                                                          dm.Height.ToString().PadLeft(4, 'x').Replace("x", "  "),
                                                          dm.RefreshRate.ToString().PadLeft(3, 'x').Replace("x", "  ")));
                DisplayModesView.Items.Add(item);
                _displayModesMap.Add(item.Index, dm);
                if (dm.ToString() == adapter.CurrentDisplayMode.ToString())
                {
                    currentDisplayModeIndex = i;
                }
                if (dm.Width == Settings.DisplayMode.Width &&
                    dm.Height == Settings.DisplayMode.Height &&
                    (selectedDisplayModeIndex < 1 ||
                     dm.RefreshRate == Settings.DisplayMode.RefreshRate))
                {
                    selectedDisplayModeIndex = i;
                }
                ++i;
            }
            if (selectedDisplayModeIndex < 0)
            {
                selectedDisplayModeIndex = currentDisplayModeIndex;
            }
            DisplayModesView.Items[selectedDisplayModeIndex].Selected = true;
            DisplayModesView.EnsureVisible(selectedDisplayModeIndex);
            Settings.DisplayMode = _displayModesMap[selectedDisplayModeIndex];

            //update aspect ratio listview
            var itm = new ListViewItem("Auto");

            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 0);
            itm = new ListViewItem("21:9");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 21.0 / 9.0);
            itm = new ListViewItem("16:9");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 16.0 / 9.0);
            itm = new ListViewItem("16:10");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 16.0 / 10.0);
            itm = new ListViewItem("3:2");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 3.0 / 2.0);
            itm = new ListViewItem("4:3");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 4.0 / 3.0);
            itm = new ListViewItem("5:4");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 5.0 / 4.0);

            double minimalAspectDistance = 9999.0;
            int    minimalAspectIndex    = 0;

            i = 0;
            foreach (var el in _aspectRatioMap)
            {
                var currentAspectDistance = Math.Abs(el.Value - Settings.AspectRatio);
                if (currentAspectDistance < minimalAspectDistance)
                {
                    minimalAspectDistance = currentAspectDistance;
                    minimalAspectIndex    = i;
                }
                ++i;
            }
            AspectRatioView.Items[minimalAspectIndex].Selected = true;
            AspectRatioView.EnsureVisible(minimalAspectIndex);

            //update sampling listview
            itm = new ListViewItem("Disabled");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 0);
            itm = new ListViewItem("  2x");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 2);
            itm = new ListViewItem("  4x");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 4);
            itm = new ListViewItem("  8x");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 8);
            itm = new ListViewItem("16x");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 16);

            int minimalSamplingDistance = 9999;
            int minimalSamplingIndex    = 0;

            i = 0;
            foreach (var el in _samplingMap)
            {
                var currentSamplingDistance = Math.Abs(el.Value - Settings.Sampling);
                if (currentSamplingDistance < minimalSamplingDistance)
                {
                    minimalSamplingDistance = currentSamplingDistance;
                    minimalSamplingIndex    = i;
                }
                ++i;
            }
            SamplingView.Items[minimalSamplingIndex].Selected = true;
            SamplingView.EnsureVisible(minimalSamplingIndex);

            FullScreenCheckBox.Checked = Settings.FullScreen;
            LoopedCheckBox.Checked     = Settings.Looped;
            VSyncCheckBox.Checked      = Settings.VSyncEnabled;
            PreCacheCheckBox.Checked   = Settings.PreCacheEnabled;
        }
Example #2
0
        private void StartUpDialog_Load(object sender, EventArgs e)
        {
            var d3d = new Direct3D();

            if (d3d.Adapters.Count == 0)
            {
                return;
            }

            //update the display listview
            var   adapter = d3d.Adapters[0];
            int   currentDisplayModeIndex = 0;
            int   i   = 0;
            float dpi = this.CreateGraphics().DpiX;

            DisplayModesView.Columns[0].Width = DisplayModesView.Width - (int)(25.0f * (dpi / 96));
            Height += (int)(20 * dpi / 96.0);

            foreach (var dm in adapter.GetDisplayModes(Format.X8R8G8B8))
            {
                var item = new ListViewItem(String.Format("{0,4} x {1,4}, {2,3}Hz", dm.Width, dm.Height, dm.RefreshRate));
                DisplayModesView.Items.Add(item);
                _displayModesMap.Add(item.Index, dm);
                if (dm.ToString() == adapter.CurrentDisplayMode.ToString())
                {
                    currentDisplayModeIndex = i;
                }
                ++i;
            }
            DisplayModesView.Items[currentDisplayModeIndex].Selected = true;
            DisplayModesView.EnsureVisible(currentDisplayModeIndex);

            //update aspect ratio listview
            var itm = new ListViewItem("4:3");

            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 4.0 / 3.0);
            itm = new ListViewItem("5:4");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 5.0 / 4.0);
            itm = new ListViewItem("16:9");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 16.0 / 9.0);
            itm = new ListViewItem("16:10");
            AspectRatioView.Items.Add(itm);
            _aspectRatioMap.Add(itm.Index, 16.0 / 10.0);

            double minimalAspectDistance = 9999.0;
            int    minimalAspectIndex    = -1;

            i = 0;
            foreach (var el in _aspectRatioMap)
            {
                var currentAspectDistance = Math.Abs(el.Value - adapter.CurrentDisplayMode.AspectRatio);
                if (currentAspectDistance < minimalAspectDistance)
                {
                    minimalAspectDistance = currentAspectDistance;
                    minimalAspectIndex    = i;
                }
                ++i;
            }
            if (minimalAspectIndex < 0)
            {
                minimalAspectIndex = 0;
            }
            AspectRatioView.Items[minimalAspectIndex].Selected = true;
            AspectRatioView.EnsureVisible(minimalAspectIndex);

            //update sampling listview
            itm = new ListViewItem("Disabled");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 0);
            itm = new ListViewItem("2x");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 2);
            itm = new ListViewItem("4x");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 4);
            itm = new ListViewItem("8x");
            SamplingView.Items.Add(itm);
            _samplingMap.Add(itm.Index, 8);
            SamplingView.Items[1].Selected = true;
            SamplingView.EnsureVisible(1);

            //const int VENDOR_NVIDIA = 4318;
            //const int VENDOR_ATI_AMD = 4098;

            //bool isAtiAmdCard = adapter.Details.VendorId == VENDOR_ATI_AMD;

            FullScreenCheckBox.Checked = true;
            LoopedCheckBox.Checked     = false;
            VSyncCheckBox.Checked      = true;//!isAtiAmdCard;
        }