Platform SDK: DirectX

ステップ 2.2 : デバイスをテストする

[Visual Basic]

ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「Direct3D 直接モード Visual Basic チュートリアル」を参照すること。

[C++]

次のコードは、すべての 8 ビット モードをスキップしながら、ディスプレイ モードのデバイスとの互換性をチェックする。

        if( (32==dwModeDepth) && (dwBitDepth&DDBD_32) ) bCompatible = TRUE;
        if( (24==dwModeDepth) && (dwBitDepth&DDBD_24) ) bCompatible = TRUE;
        if( (16==dwModeDepth) && (dwBitDepth&DDBD_16) ) bCompatible = TRUE;

特に上記のコードでは、指定されたデバイスのビデオ モードが、列挙されたデバイスのレンダリング深度と互換性を持つかどうかをチェックする。

デバイスに互換性があれば、そのデバイスは受け付けられ、デバイスでサポートされるディスプレイ モードの配列にコピーされる。

       if( bCompatible )
            pDeviceInfo->ddsdModes[pDeviceInfo->dwNumModes++] = ddsdMode;
    }

このループが終了してすべてのデバイスが列挙されると、ディスプレイ モードの配列 ddsdModes は指定条件を満たすディスプレイ モードのリストを格納し、その他のディスプレイ モードは無視される。