Platform SDK: DirectX

ステップ 1 : デバイス列挙を初期化して実行する

[Visual Basic]

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

[C++]

Enumeration アプリケーションは、次の構造体を使用して、列挙された Direct3D デバイスについての情報を保持する。

struct D3DDEVICEINFO
{
    // D3D デバイス情報。
    CHAR           strDesc[40];
    GUID*          pDeviceGUID;
    D3DDEVICEDESC7 ddDeviceDesc;
    BOOL           bHardware;
 
    // DDraw ドライバ情報。
    GUID*          pDriverGUID;
    DDCAPS         ddDriverCaps;
    DDCAPS         ddHELCaps;
 
    // DDraw モード情報。
    DDSURFACEDESC2 ddsdMode;
    BOOL           bFullscreen;
 
    // 内部使用の場合 (アプリケーションではこれらは必要ない)。
    GUID           guidDevice;
    GUID           guidDriver;
    DDSURFACEDESC2 ddsdModes[100];
    DWORD          dwNumModes;
    DWORD          dwCurrentMode;
    BOOL           bDesktopCompatible;
};

Enumeration アプリケーションでは、次の呼び出しによって列挙を初期化する。

INT UserDlgSelectDriver( HWND hwndParent )
{
    // ドライバ、デバイス、およびモードを列挙する。
    DirectDrawEnumerateEx( DriverEnumCallback, NULL, 
                           DDENUM_ATTACHEDSECONDARYDEVICES |
                           DDENUM_DETACHEDSECONDARYDEVICES |
                           DDENUM_NONDISPLAYDEVICES );

上記のコードでは、システムで使用できるドライバ、デバイス、およびディスプレイ モードを列挙するのに DirectDrawEnumerateEx メソッドを使用している。第 1 パラメータ DriverEnumCallback, は、列挙される個々の DirectDraw で有効な HAL の記述で呼び出される DDEnumCallbackEx 関数のアドレスである。

アプリケーションのデバイス列挙プロセスは、次のステップに分かれる。

デバイス列挙を使用するアプリケーションの最初のステップは、DirectDraw ドライバへの参照の取得である。ドライバ列挙については、「ステップ 1.1 : ドライバ情報を列挙する」で説明する。

デバイス列挙の開始の詳細については、「デバイス列挙の開始」を参照すること。