IDirect3DDevice9::DrawTriPatch メソッド
IDirect3DDevice9::DrawTriPatch メソッド
現在設定されているストリームを使って、三角形のパッチを描画する。
構文
HRESULT DrawTriPatch(
UINT Handle,
const float* pNumSegs,
const D3DTRIPATCH_INFO* pTriPatchInfo
);
パラメータ
- Handle
[in] 描画する三角形のパッチへのハンドル。 - pNumSegs
[in] テセレーションの際に、三角形パッチの各エッジを分割するセグメントの数を示す、3 つの浮動小数点値の配列へのポインタ。「D3DTRIPATCH_INFO」を参照すること。 - pTriPatchInfo
[in] D3DTRIPATCH_INFO 構造体へのポインタ。描画する三角形の高次パッチを記述する。
戻り値
成功した場合は、D3D_OK を返す。
失敗した場合の戻り値は次のとおり。
D3DERR_INVALIDCALL | メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。 |
注意
静的パッチの場合 :Microsoft® Direct3D® が情報をキャプチャしてキャッシュできるよう、頂点シェーダを設定し、適切なストリームを設定し、pTriPatchInfo パラメータ内でパッチ情報を供給し、ハンドルを指定すること。効率よくパッチを描画するには、pTriPatchInfo を NULL に設定した状態で IDirect3DDevice9::DrawTriPatch を呼び出す。 キャッシュしたパッチを描画するときは、現在設定されているストリームは無視される。pNumSegs の新しい値を指定して、キャッシュしたpNumSegsを上書きすること。キャッシュしたパッチをレンダリングする際は、キャプチャ時に設定したのと同じ頂点シェーダを設定する必要がある。
ハンドルを使用して IDirect3DDevice9::DrawTriPatch を呼び出すと、以前の IDirect3DDevice9::DrawRectPatch 呼び出しでキャッシュした同じハンドルが無効になる。
動的パッチについては、パッチのレンダリングごとにパッチ データが変化するため、情報をキャッシュすることは効率的ではない。アプリケーションは、Handle を 0 に設定することで、この情報を Direct3D に伝えることができる。 この場合、Direct3D は、現在設定されているストリームおよび pNumSegs 値を使ってパッチを描画し、情報のキャッシュを行わない。Handle を 0 に設定した状態で pTriPatchInfo を NULL に設定すると無効になる。
参照