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