using System.Runtime.InteropServices;
using NvAPIWrapper.Native.Attributes;
using NvAPIWrapper.Native.General.Structures;
using NvAPIWrapper.Native.Helpers;
using NvAPIWrapper.Native.Interfaces;
namespace NvAPIWrapper.Native.GPU.Structures
{
///
/// Holds necessary information to get an illumination attribute support status
///
[StructLayout(LayoutKind.Sequential, Pack = 8)]
[StructureVersion(1)]
public struct QueryIlluminationSupportParameterV1 : IInitializable
{
internal StructureVersion _Version;
internal PhysicalGPUHandle _GPUHandle;
internal IlluminationAttribute _Attribute;
internal uint _IsSupported;
///
/// Creates a new instance of .
///
/// The physical gpu handle.
/// The attribute.
public QueryIlluminationSupportParameterV1(PhysicalGPUHandle gpuHandle, IlluminationAttribute attribute)
{
this = typeof(QueryIlluminationSupportParameterV1).Instantiate();
_GPUHandle = gpuHandle;
_Attribute = attribute;
}
///
/// Gets the parameter physical gpu handle
///
public PhysicalGPUHandle PhysicalGPUHandle
{
get => _GPUHandle;
}
///
/// Gets the parameter attribute
///
public IlluminationAttribute Attribute
{
get => _Attribute;
}
///
/// Gets a boolean value indicating if this attribute is supported and controllable via this GPU
///
public bool IsSupported
{
get => _IsSupported > 0;
}
}
}