次の方法で共有


IDirect3DDevice9::D rawRectPatch メソッド (d3d9.h)

現在設定されているストリームを使用して四角形のパッチを描画します。

構文

HRESULT DrawRectPatch(
  [in] UINT                    Handle,
  [in] const float             *pNumSegs,
  [in] const D3DRECTPATCH_INFO *pRectPatchInfo
);

パラメーター

[in] Handle

型: UINT

描画する四角形のパッチをハンドルします。

[in] pNumSegs

型: const float*

四角形パッチの各エッジのセグメント数を識別する 4 つの浮動小数点値の配列へのポインターは、テセレーションされるときに分割する必要があります。 「D3DRECTPATCH_INFO」を参照してください。

[in] pRectPatchInfo

型: const D3DRECTPATCH_INFO*

描画する四角形のパッチを記述する、 D3DRECTPATCH_INFO 構造体へのポインター。

戻り値

型: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合は、戻り値をD3DERR_INVALIDCALLできます。

注釈

静的パッチの場合: 頂点シェーダーを設定し、適切なストリームを設定し、pRectPatchInfo パラメーターにパッチ情報を指定し、Direct3D が情報をキャプチャしてキャッシュできるようにハンドルを指定します。 pRectPatchInfo を NULL に設定して IDirect3DDevice9::D rawRectPatch を呼び出して、パッチを効率的に描画します。 キャッシュされたパッチを描画する場合、現在設定されているストリームは無視されます。 pNumSegs に新しい値を指定して、キャッシュされた pNumSegs をオーバーライドします。 キャッシュされたパッチをレンダリングする場合は、キャプチャ時に設定されたものと同じ頂点シェーダーを設定する必要があります。

ハンドルを使用 して IDirect3DDevice9::D rawRectPatch を呼び出すと、以前の IDirect3DDevice9::D rawTriPatch 呼び出しによってキャッシュされたのと同じハンドルが無効になります。

動的パッチの場合、パッチデータはパッチのレンダリングごとに変更されるため、情報をキャッシュするのは効率的ではありません。 アプリケーションでは、Handle を 0 に設定することで、これを Direct3D に伝達できます。 この場合、Direct3D は現在設定されているストリームと pNumSegs 値を使用してパッチを描画し、情報をキャッシュしません。 同時に Handle を 0 に設定し、pRectPatchInfo を NULL に設定することはできません。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d9.h (D3D9.h を含む)
Library D3D9.lib

こちらもご覧ください

IDirect3DDevice9

IDirect3DDevice9::D eletePatch

Higher-Order プリミティブの使用 (Direct3D 9)