using System.Runtime.InteropServices; using NvAPIWrapper.Native.Attributes; using NvAPIWrapper.Native.General.Structures; using NvAPIWrapper.Native.Interfaces; using Rectangle = NvAPIWrapper.Native.General.Structures.Rectangle; namespace NvAPIWrapper.Native.Display.Structures { /// /// Contains information regarding the scan-out configurations /// [StructLayout(LayoutKind.Sequential, Pack = 8)] [StructureVersion(1)] public struct ScanOutInformationV1 : IInitializable { internal StructureVersion _Version; internal Rectangle _SourceDesktopRectangle; internal Rectangle _SourceViewPortRectangle; internal Rectangle _TargetViewPortRectangle; internal uint _TargetDisplayWidth; internal uint _TargetDisplayHeight; internal uint _CloneImportance; internal Rotate _SourceToTargetRotation; /// /// Gets the operating system display device rectangle in desktop coordinates displayId is scanning out from. /// public Rectangle SourceDesktopRectangle { get => _SourceDesktopRectangle; } /// /// Gets the area inside the SourceDesktopRectangle which is scanned out to the display. /// public Rectangle SourceViewPortRectangle { get => _SourceViewPortRectangle; } /// /// Gets the area inside the rectangle described by targetDisplayWidth/Height SourceViewPortRectangle is scanned out /// to. /// public Rectangle TargetViewPortRectangle { get => _TargetViewPortRectangle; } /// /// Gets the horizontal size of the active resolution scanned out to the display. /// public uint TargetDisplayWidth { get => _TargetDisplayWidth; } /// /// Gets the vertical size of the active resolution scanned out to the display. /// public uint TargetDisplayHeight { get => _TargetDisplayHeight; } /// /// Gets the clone importance assigned to the target if the target is a cloned view of the SourceDesktopRectangle /// (0:primary,1 secondary,...). /// public uint CloneImportance { get => _CloneImportance; } /// /// Gets the rotation performed between the SourceViewPortRectangle and the TargetViewPortRectangle. /// public Rotate SourceToTargetRotation { get => _SourceToTargetRotation; } } }