Ejemplo n.º 1
0
        /// <summary>
        ///     This is enum mapper. Essentially it maps from display-model specific to
        ///     interface specific enum.
        /// </summary>
        /// <param name="destEnum"></param>
        /// <returns></returns>
        public static DisplayRotation ToScreenRotation(this DisplayConfigRotation destEnum)
        {
            DisplayRotation toSourceEnum = 0x0;

            if ((destEnum & DisplayConfigRotation.Identity) == DisplayConfigRotation.Identity)
            {
                toSourceEnum |= DisplayRotation.Default;
            }

            if ((destEnum & DisplayConfigRotation.Rotate180) == DisplayConfigRotation.Rotate180)
            {
                toSourceEnum |= DisplayRotation.Rotated180;
            }

            if ((destEnum & DisplayConfigRotation.Rotate270) == DisplayConfigRotation.Rotate270)
            {
                toSourceEnum |= DisplayRotation.Rotated270;
            }

            if ((destEnum & DisplayConfigRotation.Rotate90) == DisplayConfigRotation.Rotate90)
            {
                toSourceEnum |= DisplayRotation.Rotated90;
            }

            return(toSourceEnum);
        }
Ejemplo n.º 2
0
        private void btnRotate_Click(object sender, EventArgs e)
        {
            DisplayConfigRotation displayConfigRotation = (DisplayConfigRotation)Enum.Parse(typeof(DisplayConfigRotation), comRotate.Text);


            int numPathArrayElements;
            int numModeInfoArrayElements;

            const QueryDisplayFlags pathType = QueryDisplayFlags.OnlyActivePaths;

            // query active paths from the current computer.
            // note that 0 is equal to SUCCESS!
            // TODO; HARDCODE MAGIC VALUES AWAY.
            if (CCDWrapper.GetDisplayConfigBufferSizes(pathType, out numPathArrayElements,
                                                       out numModeInfoArrayElements) == 0)
            {
                var pathInfoArray = new DisplayConfigPathInfo[numPathArrayElements];
                var modeInfoArray = new DisplayConfigModeInfo[numModeInfoArrayElements];

                // TODO; FALLBACK MECHANISM THAT HANDLES DIFFERENT VALUES FOR ZERO.
                if (CCDWrapper.QueryDisplayConfig(
                        pathType,
                        ref numPathArrayElements, pathInfoArray,
                        ref numModeInfoArrayElements,
                        modeInfoArray, IntPtr.Zero) == 0)
                {
                    pathInfoArray[0].targetInfo.rotation = displayConfigRotation;
                    CCDWrapper.SetDisplayConfig(numPathArrayElements, pathInfoArray, numModeInfoArrayElements,
                                                modeInfoArray, SdcFlags.Apply | SdcFlags.UseSuppliedDisplayConfig);
                }
            }
        }
        public static Rotation ToRotation(this DisplayConfigRotation rotation)
        {
            switch (rotation)
            {
            case DisplayConfigRotation.Identity:

                return(Rotation.Identity);

            case DisplayConfigRotation.Rotate90:

                return(Rotation.Rotate90);

            case DisplayConfigRotation.Rotate180:

                return(Rotation.Rotate180);

            case DisplayConfigRotation.Rotate270:

                return(Rotation.Rotate270);

            default:

                return(Rotation.Unknown);
            }
        }
Ejemplo n.º 4
0
 /// <summary>
 ///     Creates a new PathTargetInfo
 /// </summary>
 /// <param name="displayTarget">The display target device</param>
 /// <param name="signalInfo">The display signal information</param>
 /// <param name="desktopImage">The display desktop image information</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,
     PathTargetSignalInfo signalInfo,
     PathTargetDesktopImage desktopImage,
     DisplayConfigRotation rotation = DisplayConfigRotation.NotSpecified,
     DisplayConfigScaling scaling   = DisplayConfigScaling.Preferred,
     bool isVirtualModeSupported    = false
     ) : this(displayTarget, signalInfo, rotation, scaling, isVirtualModeSupported)
 {
     _desktopImage = desktopImage;
     IsDesktopImageInformationAvailable = true;
 }
Ejemplo n.º 5
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;
 }
 /// <summary>
 ///     Creates a new PathTargetInfo
 /// </summary>
 /// <param name="displayTarget">The display target device</param>
 /// <param name="signalInfo">The display signal information</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,
     PathTargetSignalInfo signalInfo,
     DisplayConfigRotation rotation = DisplayConfigRotation.NotSpecified,
     DisplayConfigScaling scaling   = DisplayConfigScaling.Preferred,
     bool isVirtualModeSupported    = false) :
     this(displayTarget, 0, DisplayConfigScanLineOrdering.NotSpecified, rotation, scaling, isVirtualModeSupported
          )
 {
     _signalInfo                  = signalInfo;
     FrequencyInMillihertz        = signalInfo.VerticalSyncFrequencyInMillihertz;
     ScanLineOrdering             = signalInfo.ScanLineOrdering;
     IsSignalInformationAvailable = true;
 }
Ejemplo n.º 7
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));
Ejemplo n.º 8
0
 public DisplayConfigPathTargetInfo(Luid adapterId, uint id, uint modeInfoIdx, DisplayConfigVideoOutputTechnology outputTechnology,
                                    DisplayConfigRotation rotation, DisplayConfigScaling scaling, DisplayConfigRational refreshRate,
                                    DisplayConfigScanlineOrdering scanlineOrdering, bool targetAvailable, TargetInfoFlags statusFlags)
 {
     AdapterId        = adapterId;
     Id               = id;
     ModeInfoIdx      = modeInfoIdx;
     OutputTechnology = outputTechnology;
     Rotation         = rotation;
     Scaling          = scaling;
     RefreshRate      = refreshRate;
     ScanlineOrdering = scanlineOrdering;
     TargetAvailable  = targetAvailable;
     StatusFlags      = statusFlags;
 }
Ejemplo n.º 9
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;
 }