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*

指向由三个浮点值构成的数组的指针,这些值标识三角形补丁的每个边缘在细化时应划分为的段数。 请参阅 D3DTRIPATCH_INFO

[in] pTriPatchInfo

类型: const D3DTRIPATCH_INFO*

指向 D3DTRIPATCH_INFO 结构的指针,描述要绘制的三角形高阶补丁。

返回值

类型: HRESULT

如果方法成功,则返回值D3D_OK。 如果 方法失败,则可以D3DERR_INVALIDCALL返回值。

备注

对于静态修补程序:设置顶点着色器,设置适当的流,在 pTriPatchInfo 参数中提供修补程序信息,并指定句柄,以便 Direct3D 可以捕获和缓存信息。 若要有效地绘制修补程序,请调用 IDirect3DDevice9::D rawTriPatch ,并将 pTriPatchInfo 设置为 NULL。 绘制缓存的修补程序时,将忽略当前设置的流。 通过为 pNumSegs 指定新值来替代缓存的 pNumSegs。 呈现缓存的修补程序时,必须设置与捕获时设置的顶点着色器相同的着色器。

使用句柄调用 IDirect3DDevice9::D rawTriPatch 会使先前 IDirect3DDevice9::D rawRectPatch 调用缓存的同一句柄失效。

对于动态修补程序,每次呈现修补程序时,修补程序数据都会发生更改,因此缓存信息的效率不高。 应用程序可以通过将“句柄”设置为 0 来向 Direct3D 传达此信息。 在这种情况下,Direct3D 使用当前设置的流和 pNumSegs 值绘制修补程序,并且不缓存任何信息。 同时将 Handle 设置为 0 和 pTriPatchInfo 设置为 NULL 无效。

要求

   
目标平台 Windows
标头 d3d9helper.h (包括 D3D9.h)
Library D3D9.lib

另请参阅

IDirect3DDevice9

使用 Higher-Order 基元 (Direct3D 9)