次の方法で共有


IDirect3DDevice9::D rawTriPatch メソッド (d3d9helper.h)

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

構文

HRESULT DrawTriPatch(
  [in] UINT                   Handle,
  [in] const float            *pNumSegs,
  [in] const D3DTRIPATCH_INFO *pTriPatchInfo
);

パラメーター

[in] Handle

型: UINT

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

[in] pNumSegs

型: const float*

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

[in] pTriPatchInfo

型: const D3DTRIPATCH_INFO*

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

戻り値

型: HRESULT

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

解説

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

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

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

要件

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

関連項目

IDirect3DDevice9

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