Platform SDK: DirectX |
注 : ここでは、C++ でのアプリケーション開発について説明する。DirectX for Visual Basic では、アプリケーションへの COM インターフェイスは直接には公開されない。
Direct3D オブジェクトの機能を利用するには、インターフェイス IDirect3D、IDirect3D2、IDirect3D3、および IDirect3D7 を使用する。このセクションでは、DirectX 7.0 で導入された IDirect3D7 インターフェイスから順に IDirect3D インターフェイスまで、これら 3 つのインターフェイスの概要について説明する。
IDirect3D7 インターフェイスは、アプリケーションでのレンダリング デバイスおよび頂点バッファの作成、ピクセル フォーマットの列挙など、IDirect3D3 インターフェイスと同じ機能を多数サポートしている。このインターフェイスは、テクスチャ作成機能を追加するため、テクスチャ インターフェイスについて DirectDraw サーフェスを問い合わせる必要はなくなる。
IDirect3D7 とその他のインターフェイスとの大きな違いは、ライティング、マテリアル、またはビューポート オブジェクトを作成するメソッドがないことである。このことは、IDirect3DDevice7 インターフェイスでの処理に反映されており、ライティング、マテリアル、およびビューポート パラメータを個別のオブジェクトとしてではなく、デバイスの内部データ構造の一部として組み込む。
IDirect3D7 オブジェクトは、「DirectX 7.0 での直接モードの変更点」で説明する機能をサポートする。
アプリケーションは、新しい IDirectDraw7 インターフェイスの QueryInterface メソッドを使用して IDirect3D7 インターフェイスへのポインタを取得する。詳細については、「Direct3D へのアクセス」を参照すること。
IDirect3D2 と IDirect3D との最も重要な違いは、IDirect3D2 が IDirect3D2::CreateDevice メソッドを実装しているという点である。このメソッドは、DrawPrimitive をサポートする Direct3D デバイスを作成する。IDirect3D2::CreateDevice メソッドで作成されるデバイスの詳細については、「Direct3D デバイス」を参照すること。
IDirect3D2 インターフェイスと同様、IDirect3D3 インターフェイスは Direct3D プログラミングの DrawPrimitive スタイルをサポートしている。さらに、IDirect3D3 インターフェイスは、IDirect3DDevice3 インターフェイスを導入することで DrawPrimitive スタイルの機能を拡張する。このインターフェイスにより、柔軟な頂点フォーマット、頂点バッファ、および新しいテクスチャ機能の概念が導入されている。詳細については、「頂点フォーマット」、「テクスチャ」、「頂点バッファ」、および「レンダリング」を参照すること。
アプリケーションは、QueryInterface メソッドを使用して DirectDraw オブジェクトから IDirect3D3 インターフェイスへのポインタを取得する。