出力を持つものと持たないものの両方のアダプター (ビデオ カード) を列挙します。
HRESULT
EnumAdapters1(
UINT Adapter,
IDXGIAdapter1 **ppAdapter
);
パラメータ
- Adapter
列挙するアダプターのインデックス。 - ppAdapter
Adapter パラメーターによって指定された位置にある IDXGIAdapter1 インターフェイスへのポインターのアドレス。このパラメーターを NULL にすることはできません。
戻り値
成功した場合は S_OK を返し、それ以外の場合でインデックスがローカル システム内のアダプターの数以上のときには、DXGI_ERR_NOT_FOUND を返します。また、ppAdapter パラメーターが NULL の場合には、DXGI_ERR_INVALID_CALL を返します。
解説
システムで利用可能なアダプターのセットは、ファクトリの作成時に列挙されます。したがって、システム内のアダプターを変更する場合には、IDXGIFactory1 オブジェクトを一度破棄し、再作成する必要があります。システム内のアダプターの数は、ディスプレイ カードを追加または取り外したり、ラップトップをドッキングまたはドッキング解除することで変化します。
EnumAdapters1 メソッドが成功し、アダプター インターフェイスが格納されると、アダプターのリファレンス カウントがインクリメントされます。アダプター インターフェイスの使用が終了したら、ポインターを破棄する前に Release メソッドを呼び出してリファレンス カウントをデクリメントする必要があります。
デスクトップ プライマリの表示を出力するローカル アダプターが最初に返され、次に出力を持つ各アダプター、最後に出力を持たない各アダプターが返されます。
例
アダプターの列挙
次のコード例は、EnumAdapters1 メソッドを使用したアダプターの列挙方法を示しています。UINT i = 0; IDXGIAdapter1 * pAdapter; std::vector <IDXGIAdapter1*> vAdapters; while(pFactory->EnumAdapters1(i, &pAdapter) != DXGI_ERROR_NOT_FOUND) { vAdapters.push_back(pAdapter); ++i; }
要件
ヘッダー: DXGI.h 宣言
ライブラリ: DXGI.lib 内容