/// <summary> /// Enumerates available D3D adapters, devices, modes, etc. /// </summary> public void Enumerate() { foreach (AdapterInformation ai in Manager.Adapters) { ArrayList adapterFormatList = new ArrayList(); GraphicsAdapterInfo adapterInfo = new GraphicsAdapterInfo(); adapterInfo.AdapterOrdinal = ai.Adapter; adapterInfo.AdapterDetails = ai.Information; // Get list of all display modes on this adapter. // Also build a temporary list of all display adapter formats. foreach (DisplayMode displayMode in ai.SupportedDisplayModes) { if (displayMode.Width < AppMinFullscreenWidth) { continue; } if (displayMode.Height < AppMinFullscreenHeight) { continue; } if (D3DUtil.GetColorChannelBits(displayMode.Format) < AppMinColorChannelBits) { continue; } adapterInfo.DisplayModeList.Add(displayMode); if (!adapterFormatList.Contains(displayMode.Format)) { adapterFormatList.Add(displayMode.Format); } } // Sort displaymode list DisplayModeComparer dmc = new DisplayModeComparer(); adapterInfo.DisplayModeList.Sort(dmc); // Get info for each device on this adapter EnumerateDevices(adapterInfo, adapterFormatList); // If at least one device on this adapter is available and compatible // with the app, add the adapterInfo to the list if (adapterInfo.DeviceInfoList.Count == 0) { continue; } AdapterInfoList.Add(adapterInfo); } }