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*
指向四个浮点值的数组的指针,这些值标识矩形补丁的每个边缘在细化时应划分为的段数。 请参阅 D3DRECTPATCH_INFO。
[in] pRectPatchInfo
类型: const D3DRECTPATCH_INFO*
指向 D3DRECTPATCH_INFO 结构的指针,描述要绘制的矩形补丁。
返回值
类型: HRESULT
如果该方法成功,则返回值D3D_OK。 如果方法失败,则可以D3DERR_INVALIDCALL返回值。
注解
对于静态修补程序:设置顶点着色器,设置适当的流,在 pRectPatchInfo 参数中提供修补程序信息,并指定句柄,以便 Direct3D 可以捕获和缓存信息。 随后调用 IDirect3DDevice9::D rawRectPatch, 并将 pRectPatchInfo 设置为 NULL 以有效地绘制修补程序。 绘制缓存的修补程序时,将忽略当前设置的流。 通过指定 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 |