using System.Runtime.InteropServices; using NvAPIWrapper.Native.Attributes; using NvAPIWrapper.Native.Helpers; using NvAPIWrapper.Native.Interfaces; namespace NvAPIWrapper.Native.GPU.Structures { /// /// Holds information regarding a device illumination settings /// [StructLayout(LayoutKind.Sequential, Pack = 8)] [StructureVersion(1)] public struct IlluminationDeviceControlV1 : IInitializable { private const int MaximumNumberOfReserved = 64; internal IlluminationDeviceType _DeviceType; internal IlluminationDeviceSyncV1 _SyncInformation; [MarshalAs(UnmanagedType.ByValArray, SizeConst = MaximumNumberOfReserved)] internal byte[] _Reserved; /// /// Creates a new instance of . /// /// The device type. /// The device sync information. public IlluminationDeviceControlV1(IlluminationDeviceType deviceType, IlluminationDeviceSyncV1 syncInformation) { this = typeof(IlluminationDeviceControlV1).Instantiate(); _DeviceType = deviceType; _SyncInformation = syncInformation; } /// /// Gets the illumination device type /// public IlluminationDeviceType DeviceType { get => _DeviceType; } /// /// Gets the illumination synchronization information /// public IlluminationDeviceSyncV1 SyncInformation { get => _SyncInformation; } } }