using System.Runtime.InteropServices; namespace NvAPIWrapper.Native.GPU.Structures { /// /// Hold information regarding delta values and delta ranges for voltages or clock frequencies in their respective unit /// (uV or kHz) /// [StructLayout(LayoutKind.Sequential, Pack = 8)] public struct PerformanceStates20ParameterDelta { internal int _DeltaValue; internal PerformanceState20ParameterDeltaValueRange _DeltaRange; /// /// Creates a new instance of /// /// The delta value. /// The delta range minimum value. /// The delta range maximum value. public PerformanceStates20ParameterDelta(int deltaValue, int deltaMinimum, int deltaMaximum) { _DeltaValue = deltaValue; _DeltaRange = new PerformanceState20ParameterDeltaValueRange(deltaMinimum, deltaMaximum); } /// /// Creates a new instance of /// /// The delta value. public PerformanceStates20ParameterDelta(int deltaValue) { _DeltaValue = deltaValue; _DeltaRange = new PerformanceState20ParameterDeltaValueRange(); } /// /// Gets the delta value in the respective unit (uV or kHz) /// public int DeltaValue { get => _DeltaValue; set => _DeltaValue = value; } /// /// Gets the range of the valid delta values in the respective unit (uV or kHz) /// public PerformanceState20ParameterDeltaValueRange DeltaRange { get => _DeltaRange; } /// /// Holds information regarding a range of values /// [StructLayout(LayoutKind.Sequential, Pack = 8)] public struct PerformanceState20ParameterDeltaValueRange { internal int _Minimum; internal int _Maximum; /// /// Creates a new instance of . /// /// The minimum value of delta range. /// The maximum value of delta range. public PerformanceState20ParameterDeltaValueRange(int minimum, int maximum) { _Minimum = minimum; _Maximum = maximum; } /// /// Gets the minimum value /// public int Minimum { get => _Minimum; } /// /// Gets the maximum value /// public int Maximum { get => _Maximum; } } } }