IDirect3DDevice9::D rawTriPatch 方法 (d3d9.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 |
標頭 | d3d9.h (包含 D3D9.h) |
程式庫 | D3D9.lib |