Exemple #1
0
        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);
            }
        }
Exemple #2
0
    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);
    }