Пример #1
0
 /// <summary>
 ///     Creates a new PathTargetInfo
 /// </summary>
 /// <param name="displayTarget">The display target device</param>
 /// <param name="frequencyInMillihertz">Display frequency in millihertz</param>
 /// <param name="scanLineOrdering">Display scan line ordering</param>
 /// <param name="rotation">Display rotation</param>
 /// <param name="scaling">Display scaling</param>
 /// <param name="isVirtualModeSupported">A boolean value indicating the target virtual mode support</param>
 public PathTargetInfo(
     PathDisplayTarget displayTarget,
     ulong frequencyInMillihertz,
     DisplayConfigScanLineOrdering scanLineOrdering = DisplayConfigScanLineOrdering.NotSpecified,
     DisplayConfigRotation rotation = DisplayConfigRotation.NotSpecified,
     DisplayConfigScaling scaling   = DisplayConfigScaling.Preferred,
     bool isVirtualModeSupported    = false
     ) : this(displayTarget, isVirtualModeSupported)
 {
     FrequencyInMillihertz = frequencyInMillihertz;
     ScanLineOrdering      = scanLineOrdering;
     Rotation = rotation;
     Scaling  = scaling;
 }
Пример #2
0
 public DisplayConfigVideoSignalInfo(ulong pixelRate, DisplayConfigRational horizontalSyncFrequency,
                                     DisplayConfigRational verticalSyncFrequency, DisplayConfig2DRegion activeSize,
                                     DisplayConfig2DRegion totalSize, VideoSignalStandard videoStandard, ushort verticalSyncFrequencyDivider,
                                     DisplayConfigScanLineOrdering scanLineOrdering)
 {
     PixelRate = pixelRate;
     HorizontalSyncFrequency = horizontalSyncFrequency;
     VerticalSyncFrequency   = verticalSyncFrequency;
     ActiveSize    = activeSize;
     TotalSize     = totalSize;
     VideoStandard = videoStandard;
     VerticalSyncFrequencyDivider = verticalSyncFrequencyDivider;
     ScanLineOrdering             = scanLineOrdering;
 }
Пример #3
0
 public DisplayConfigPathTargetInfo(
     Luid adapterId,
     uint targetId,
     ushort targetModeInfoIndex,
     ushort desktopModeInfoIndex,
     DisplayConfigVideoOutputTechnology outputTechnology,
     DisplayConfigRotation rotation,
     DisplayConfigScaling scaling,
     DisplayConfigRational refreshRate,
     DisplayConfigScanLineOrdering scanLineOrdering,
     bool targetAvailable)
     : this(
         adapterId, targetId, 0, outputTechnology, rotation, scaling, refreshRate, scanLineOrdering,
         targetAvailable) =>
     this.ModeInfoIndex = (uint)(targetModeInfoIndex + (desktopModeInfoIndex << 16));
 /// <summary>
 ///     Creates a new PathTargetSignalInfo
 /// </summary>
 /// <param name="activeSize">Specifies the width and height (in pixels) of the active portion of the video signal.</param>
 /// <param name="totalSize">Specifies the width and height (in pixels) of the entire video signal.</param>
 /// <param name="verticalSyncFrequencyInMillihertz">Vertical synchronization frequency.</param>
 /// <param name="scanLineOrdering">The scan-line ordering (for example, progressive or interlaced) of the video signal.</param>
 /// <param name="videoStandard">
 ///     The video standard (if any) that defines the video signal. Supported by WDDM 1.3 and later
 ///     display miniport drivers running on Windows 8.1 and later.
 /// </param>
 /// <param name="verticalSyncFrequencyDivider">
 ///     The ratio of the VSync rate of a monitor that displays through a Miracast
 ///     connected session to the VSync rate of the Miracast sink. The ratio of the VSync rate of a monitor that displays
 ///     through a Miracast connected session to the VSync rate of the Miracast sink. Supported by WDDM 1.3 and later
 ///     display miniport drivers running on Windows 8.1 and later.
 /// </param>
 public PathTargetSignalInfo(
     Size activeSize,
     Size totalSize,
     ulong verticalSyncFrequencyInMillihertz,
     DisplayConfigScanLineOrdering scanLineOrdering,
     VideoSignalStandard videoStandard   = VideoSignalStandard.Uninitialized,
     ushort verticalSyncFrequencyDivider = 0)
 {
     ActiveSize                          = activeSize;
     ScanLineOrdering                    = scanLineOrdering;
     TotalSize                           = totalSize;
     VerticalSyncFrequencyDivider        = verticalSyncFrequencyDivider;
     VerticalSyncFrequencyInMillihertz   = verticalSyncFrequencyInMillihertz;
     VideoStandard                       = videoStandard;
     PixelRate                           = (ulong)(verticalSyncFrequencyInMillihertz / 1000d * totalSize.Width * totalSize.Height);
     HorizontalSyncFrequencyInMillihertz = (ulong)totalSize.Height * verticalSyncFrequencyInMillihertz;
 }
Пример #5
0
 public DisplayConfigPathTargetInfo(
     Luid adapterId,
     uint targetId,
     uint modeInfoIndex,
     DisplayConfigVideoOutputTechnology outputTechnology,
     DisplayConfigRotation rotation,
     DisplayConfigScaling scaling,
     DisplayConfigRational refreshRate,
     DisplayConfigScanLineOrdering scanLineOrdering,
     bool targetAvailable) : this()
 {
     this.AdapterId        = adapterId;
     this.TargetId         = targetId;
     this.ModeInfoIndex    = modeInfoIndex;
     this.OutputTechnology = outputTechnology;
     this.Rotation         = rotation;
     this.Scaling          = scaling;
     this.RefreshRate      = refreshRate;
     this.ScanLineOrdering = scanLineOrdering;
     this.TargetAvailable  = targetAvailable;
 }
        public static ScanLineOrdering ToScanLineOrdering(this DisplayConfigScanLineOrdering scanLineOrdering)
        {
            switch (scanLineOrdering)
            {
            case DisplayConfigScanLineOrdering.Progressive:

                return(ScanLineOrdering.Progressive);

            case DisplayConfigScanLineOrdering.InterlacedWithUpperFieldFirst:

                return(ScanLineOrdering.InterlacedWithUpperFieldFirst);

            case DisplayConfigScanLineOrdering.InterlacedWithLowerFieldFirst:

                return(ScanLineOrdering.InterlacedWithLowerFieldFirst);

            default:

                return(ScanLineOrdering.NotSpecified);
            }
        }