using System.Runtime.InteropServices; using NvAPIWrapper.Native.Attributes; using NvAPIWrapper.Native.General.Structures; using NvAPIWrapper.Native.Helpers; using NvAPIWrapper.Native.Interfaces; using NvAPIWrapper.Native.Interfaces.Display; namespace NvAPIWrapper.Native.Display.Structures { /// [StructLayout(LayoutKind.Explicit, Pack = 8)] [StructureVersion(2)] public struct HDMISupportInfoV2 : IInitializable, IHDMISupportInfo { [FieldOffset(0)] internal StructureVersion _Version; [FieldOffset(4)] private readonly uint _Flags; [FieldOffset(8)] private readonly uint _EDID861ExtensionRevision; /// public bool IsGPUCapableOfHDMIOutput { get => _Flags.GetBit(0); } /// public bool IsMonitorCapableOfUnderscan { get => _Flags.GetBit(1); } /// public bool IsMonitorCapableOfBasicAudio { get => _Flags.GetBit(2); } /// public bool IsMonitorCapableOfYCbCr444 { get => _Flags.GetBit(3); } /// public bool IsMonitorCapableOfYCbCr422 { get => _Flags.GetBit(4); } /// // ReSharper disable once IdentifierTypo public bool IsMonitorCapableOfxvYCC601 { get => _Flags.GetBit(5); } /// // ReSharper disable once IdentifierTypo public bool IsMonitorCapableOfxvYCC709 { get => _Flags.GetBit(6); } /// public bool IsHDMIMonitor { get => _Flags.GetBit(7); } /// public bool? IsMonitorCapableOfsYCC601 { get => _Flags.GetBit(8); } /// public bool? IsMonitorCapableOfAdobeYCC601 { get => _Flags.GetBit(9); } /// public bool? IsMonitorCapableOfAdobeRGB { get => _Flags.GetBit(10); } /// // ReSharper disable once ConvertToAutoProperty public uint EDID861ExtensionRevision { get => _EDID861ExtensionRevision; } } }