using System.Runtime.InteropServices; using NvAPIWrapper.Native.Interfaces; namespace NvAPIWrapper.Native.GPU.Structures { /// /// Holds information regarding a illumination zone /// [StructLayout(LayoutKind.Sequential, Pack = 8)] public struct IlluminationZoneInfoV1 : IInitializable { private const int MaximumNumberOfReserved = 64; private const int MaximumNumberOfDataBytes = 64; internal IlluminationZoneType _ZoneType; internal byte _DeviceIndex; internal byte _ProviderIndex; internal IlluminationZoneLocation _ZoneLocation; [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaximumNumberOfDataBytes)] internal byte[] _Data; [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaximumNumberOfReserved)] internal byte[] _Reserved; /// /// Gets the index of the illumination device that controls this zone. /// public int DeviceIndex { get => _DeviceIndex; } /// /// Gets the provider index used for representing logical to physical zone mapping. /// public int ProviderIndex { get => _ProviderIndex; } /// /// Gets the location of the zone on the board. /// public IlluminationZoneLocation ZoneLocation { get => _ZoneLocation; } /// /// Gets the zone type. /// internal IlluminationZoneType ZoneType { get => _ZoneType; } } }