Platform SDK: DirectX |
IDirect3DDevice7::DrawPrimitiveVB メソッドは、IDirect3DDevice7::DrawPrimitive メソッドに対応する。同様に、DrawPrimitiveVB メソッドも、頂点が頂点バッファ内に順序どおりに現れると見なす。
DrawPrimitiveVB メソッドは 5 つのパラメータを受け取る。d3dptPrimitiveType パラメータには、D3DPRIMITIVETYPE 列挙型のメンバの 1 つを使用して、レンダリングするプリミティブの種類を設定する。第 2 パラメータ lpd3dVertexBuffer には、頂点を含む頂点バッファのアドレスを指定し、次に、dwStartVertex パラメータと dwNumVertices パラメータに、レンダリングする第 1 頂点と頂点の合計数を示す値を設定する。頂点バッファに含まれるすべての頂点をレンダリングする必要はないが、プリミティブの種類に応じた適切な数の頂点を使用しなければならない (D3DPRIMITIVETYPE の参照情報に記述)。最後のパラメータ dwFlags は、レンダリングの動作を決定する。このフラグは他のレンダリング メソッドで使用されるフラグと同一である。レンダリング中にフラグを設定して、ライティングおよびクリッピングを有効にしたり、クリップ範囲を更新することができる。
IDirect3DDevice7::DrawIndexedPrimitiveVB メソッドは、頂点バッファ内の頂点にインデックスを付けてプリミティブをレンダリングする。最初の 2 つのパラメータは、DrawPrimitiveVB メソッドのパラメータと同じである。第 3 および第 4 パラメータには、バッファ内の最初の頂点のインデックスおよびレンダリングする頂点の合計数をそれぞれ設定する。第 5 パラメータ lpwIndices には、レンダリングする頂点にアクセスするためにメソッドが使用する WORD インデックスの順序付き配列のアドレスを設定し、第 6 パラメータ dwIndexCount には、その配列に含まれるインデックス値の個数を設定する。dwFlags パラメータは、DrawPrimitiveVB メソッドの対応するパラメータと同じである。
Direct3DDevice7.DrawPrimitiveVB メソッドは、Direct3DDevice7.DrawPrimitive メソッドに対応する。同じように、DrawPrimitiveVB メソッドも、頂点が頂点バッファ内に順序どおりに現れると見なす。
DrawPrimitiveVB メソッドは 5 つのパラメータを受け取る。d3dpt パラメータには、CONST_D3DPRIMITIVETYPE 列挙のメンバのいずれかを使用して、レンダリングするプリミティブの種類を設定する。第 2 パラメータ vertexBuffer には、頂点を含む Direct3DVertexBuffer7 オブジェクトを指定し、startVertex および numVertices パラメータには、最初の頂点およびレンダリングする頂点の合計数を示す値を指定する。頂点バッファに含まれるすべての頂点をレンダリングする必要はないが、プリミティブの種類に応じた適切な数の頂点を使用しなければならない (D3DPRIMITIVETYPE の参照情報に記述)。最後のパラメータ flags は、レンダリングの動作を決定する。これらフラグは、その他のレンダリング メソッドで使用されるフラグと同じである。レンダリング中にフラグを設定して、ライティングおよびクリッピングを有効にしたり、クリップ範囲を更新することができる。
Direct3DDevice7.DrawIndexedPrimitiveVB メソッドは、頂点バッファ内の頂点にインデックスを付けてプリミティブをレンダリングする。最初の 2 つのパラメータは、DrawPrimitiveVB メソッドのパラメータと同じである。第 3 および第 4 パラメータには、バッファ内の最初の頂点のインデックスおよびレンダリングする頂点の合計数をそれぞれ設定する。第 5 パラメータ indexArray には、レンダリングする頂点にアクセスするためにメソッドが使用する Integer インデックスの順序付き配列のアドレスを設定し、第 6 パラメータ indexCount には、その配列に含まれるインデックス値の個数を設定する。flags パラメータは、DrawPrimitiveVB メソッドの対応するパラメータと同じである。
バッファ内の頂点フォーマットに頂点法線が含まれていない場合は、頂点バッファ レンダリング メソッドにライティングを要求することはできない。また、D3DDP_DONOTCLIP フラグを使用して作成された、トランスフォームされた頂点バッファからのレンダリングを行う場合、レンダリング メソッドに頂点のクリップを要求することはできない (これは、未トランスフォームの頂点バッファに対しては要求できる。レンダリング時にシステムがクリッピング可能なバッファを作成するからである)。利用できないサービスを要求しても、デバッグ ビルドでメソッドが失敗する原因になることはないが、サービスは適用されない。
ハードウェア アクセラレーション トランスフォーム & ライティングが可能な TnLHAL デバイス (IID_IDirect3DTnLHALDevice) とは対照的に、ソフトウェア デバイスまたは HAL デバイス (IID_IDirect3DHALDevice) では、D3DVBCAPS_SYSTEMMEMORY フラグで作成された頂点バッファからのレンダリングのみ実行できる。詳細については、「デバイスの種類と頂点処理の要件」を参照すること。