Cara: Menghitung Adapter
Topik ini menunjukkan cara menggunakan Microsoft DirectX Graphics Infrastructure (DXGI) untuk menghitung adaptor grafis yang tersedia di komputer. Direct3D 10 dan 11 dapat menggunakan DXGI untuk menghitung adaptor.
Anda umumnya perlu menghitung adaptor karena alasan ini:
- Untuk menentukan berapa banyak adaptor grafis yang diinstal pada komputer.
- Untuk membantu Anda memilih adaptor mana yang akan digunakan untuk membuat perangkat Direct3D.
- Untuk mengambil objek IDXGIAdapter yang dapat Anda gunakan untuk mengambil kemampuan perangkat.
Untuk menghitung adaptor
Buat objek IDXGIFactory dengan memanggil fungsi CreateDXGIFactory . Contoh kode berikut menunjukkan cara menginisialisasi objek IDXGIFactory .
IDXGIFactory * pFactory = NULL; CreateDXGIFactory(__uuidof(IDXGIFactory) ,(void**)&pFactory)
Hitung melalui setiap adaptor dengan memanggil metode IDXGIFactory::EnumAdapters . Parameter Adapter memungkinkan Anda menentukan nomor indeks berbasis nol adapter untuk dijumlahkan. Jika tidak ada adaptor yang tersedia pada indeks yang ditentukan, metode akan mengembalikan DXGI_ERROR_NOT_FOUND.
Contoh kode berikut menunjukkan cara menghitung melalui adaptor di komputer.
for (UINT i = 0; pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND; ++i) { ... }
Contoh kode berikut menunjukkan cara menghitung semua adaptor di komputer.
Catatan
Untuk Direct3D 11.0 dan yang lebih baru, sebaiknya aplikasi selalu menggunakan IDXGIFactory1 dan CreateDXGIFactory1 sebagai gantinya.
std::vector <IDXGIAdapter*> EnumerateAdapters(void)
{
IDXGIAdapter * pAdapter;
std::vector <IDXGIAdapter*> vAdapters;
IDXGIFactory* pFactory = NULL;
// Create a DXGIFactory object.
if(FAILED(CreateDXGIFactory(__uuidof(IDXGIFactory) ,(void**)&pFactory)))
{
return vAdapters;
}
for ( UINT i = 0;
pFactory->EnumAdapters(i, &pAdapter) != DXGI_ERROR_NOT_FOUND;
++i )
{
vAdapters.push_back(pAdapter);
}
if(pFactory)
{
pFactory->Release();
}
return vAdapters;
}
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk