static void Main(string[] args) { using var factory = new IDXGIFactory(); var hr = dxgi.CreateDXGIFactory(ref factory.GetIID(), ref factory.NewPtr); if (hr != 0) { throw new System.Runtime.InteropServices.COMException("CreateDXGIFactory", hr); } for (uint i = 0; ; ++i) { using var adapter = new IDXGIAdapter(); hr = factory.EnumAdapters(i, ref adapter.NewPtr); if (hr != 0) { break; } DXGI_ADAPTER_DESC desc = default; adapter.GetDesc(ref desc); Console.WriteLine(desc.Description); } }
public static object Read_DXGI_ADAPTER_DESC(BinaryReader br) { DXGI_ADAPTER_DESC desc = new DXGI_ADAPTER_DESC(); desc.offset = br.BaseStream.Position; desc.Description = Utils.ReadChunkString(br); desc.DescriptionLen = desc.Description.Length; desc.VendorId = br.ReadUInt32(); desc.DeviceId = br.ReadUInt32(); desc.SubSysId = br.ReadUInt32(); desc.Revision = br.ReadUInt32(); desc.DedicatedVideoMemory = br.ReadUInt64(); desc.DedicatedSystemMemory = br.ReadUInt64(); desc.SharedSystemMemory = br.ReadUInt64(); desc.AdapterLuid.LowPart = br.ReadUInt32(); desc.AdapterLuid.HighPart = br.ReadInt32(); desc.length = br.BaseStream.Position - desc.offset; return(desc); }