Platform SDK: DirectX |
C++ で記述された Direct3D アプリケーションでは、起動時に、Direct3D の最新機能を利用するために IDirect3D7 インターフェイスへのポインタを取得しなければならない。以下の手順に従って、IDirect3D7 インターフェイスへのポインタを取得する。
IDirect3D7 インターフェイスへのポインタを取得するには
次の図は、これらの手順を示し、その過程を従来のアプリケーションで必要なものに関連させている。
注 : この図に示すように、DirectDraw コンポーネントは 2 つの COM オブジェクトから構成されている。DirectDrawCreateEx 関数を呼び出して作成される、DirectDraw7 と呼ばれる最新のオブジェクトのみ、IDirect3D7 インターフェイスを公開する。DirectDraw7 オブジェクトは、従来の Direct3D インターフェイスは公開しない。従来の Direct3D が必要なアプリケーションでは、DirectDrawCreate メソッドを使用して DirectDraw オブジェクトを作成し、その後でそのインターフェイスを問い合わせなければならない。
次のコードは、DirectDraw7 オブジェクトの作成方法と、IDirect3D7 インターフェイスの問い合わせ方法を示す。
LPDIRECTDRAW7 lpDD; // IDirectDraw7 インターフェイス。 LPDIRECT3D7 lpD3D; // IDirect3D7 インターフェイス。 HRESULT hr; // IDirect3D7 インターフェイスを取得する。 // 現在のディスプレイ ドライバを使用する。 hr = DirectDrawCreateEx (NULL, (void **)&lpDD, IID_IDirectDraw7, NULL); if (FAILED (hr)) { // エラー処理コード。 } // D3D インターフェイスを取得する。 hr = lpDD->QueryInterface (IID_IDirect3D7, (void **)&lpD3D); if (FAILED (hr)) { // エラー処理コード }
Visual Basic で記述された Direct3D アプリケーションでは、起動時に、Direct3D 機能を利用するために Direct3D7 クラスへの参照を取得しなければならない。以下の手順に従って参照を取得する。
Direct3D7 クラスへの参照を取得するには
次の図は、これらの手順を示す。
次のコードは、DirectDraw7 クラス オブジェクトから Direct3D7 クラスを取得する方法を示す。
' Direct3D7 クラスへの参照を取得する。 ' ' この例では、dx は DirectX7 クラスへの有効な参照である。 On Local Error Resume Next Dim ddraw As DirectDraw7 Dim d3d As Direct3D7 ' デフォルトの DirectDraw7 オブジェクトを作成する。 Set ddraw = dx.DirectDrawCreate("") If (Err.Number <> DD_OK) Then ' エラー処理 End If ' DirectDraw7 オブジェクトから Direct3D7 参照を取得する。 Set d3d = ddraw.GetDirect3D If (Err.Number <> DD_OK) Then ' エラー処理 End If