using System.Runtime.InteropServices; using NvAPIWrapper.Native.Attributes; using NvAPIWrapper.Native.General.Structures; using NvAPIWrapper.Native.Interfaces; using NvAPIWrapper.Native.Interfaces.GPU; namespace NvAPIWrapper.Native.GPU.Structures { /// /// Holds information about the system's display driver memory. /// [StructLayout(LayoutKind.Sequential, Pack = 8)] [StructureVersion(2)] public struct DisplayDriverMemoryInfoV2 : IInitializable, IDisplayDriverMemoryInfo { internal StructureVersion _Version; internal readonly uint _DedicatedVideoMemory; internal readonly uint _AvailableDedicatedVideoMemory; internal readonly uint _SystemVideoMemory; internal readonly uint _SharedSystemMemory; internal readonly uint _CurrentAvailableDedicatedVideoMemory; /// public uint DedicatedVideoMemoryInkB { get => _DedicatedVideoMemory; } /// public uint AvailableDedicatedVideoMemoryInkB { get => _AvailableDedicatedVideoMemory; } /// public uint SystemVideoMemoryInkB { get => _SystemVideoMemory; } /// public uint SharedSystemMemoryInkB { get => _SharedSystemMemory; } /// public uint CurrentAvailableDedicatedVideoMemoryInkB { get => _CurrentAvailableDedicatedVideoMemory; } /// public override string ToString() { return $"{AvailableDedicatedVideoMemoryInkB / 1024} MB ({CurrentAvailableDedicatedVideoMemoryInkB / 1024} MB) / {DedicatedVideoMemoryInkB / 1024} MB"; } } }