/// <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);
            }
        }
Esempio n. 2
0
    /// <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);
      }
    }