/// <summary>
        /// Function to retrieve the video modes for an output.
        /// </summary>
        /// <param name="D3DDevice">D3D device for filtering supported display modes.</param>
        /// <param name="giOutput">Output that contains the video modes.</param>
        /// <returns>A list of display compatible full screen video modes.</returns>
        private static IEnumerable <ModeDescription1> GetVideoModes(D3D11.Device1 D3DDevice, Output1 giOutput)
        {
            Format[] formats = ((Format[])Enum.GetValues(typeof(Format)))
                               .Where(item => (D3DDevice.CheckFormatSupport(item) & D3D11.FormatSupport.Display) == D3D11.FormatSupport.Display)
                               .ToArray();

            IEnumerable <ModeDescription1> result = Enumerable.Empty <ModeDescription1>();

            // Test each format for display compatibility.
            return(formats.Aggregate(result,
                                     (current, format) =>
                                     current.Concat(giOutput.GetDisplayModeList1(format,
                                                                                 DisplayModeEnumerationFlags.Scaling |
                                                                                 DisplayModeEnumerationFlags.Stereo |
                                                                                 DisplayModeEnumerationFlags.DisabledStereo |
                                                                                 DisplayModeEnumerationFlags.Interlaced)
                                                    .Where(item => (D3DDevice.CheckFormatSupport(format) & D3D11.FormatSupport.Display) == D3D11.FormatSupport.Display))));
        }