Compartilhar via


Método IDirect3DDevice9::D rawTriPatch (d3d9helper.h)

Desenha um patch triangular usando os fluxos definidos no momento.

Sintaxe

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

Parâmetros

[in] Handle

Tipo: UINT

Manipule para o patch triangular a ser desenhado.

[in] pNumSegs

Tipo: const float*

Ponteiro para uma matriz de três valores de ponto flutuante que identificam o número de segmentos em que cada borda do patch de triângulo deve ser dividida quando mosaico. Consulte D3DTRIPATCH_INFO.

[in] pTriPatchInfo

Tipo: const D3DTRIPATCH_INFO*

Ponteiro para uma estrutura D3DTRIPATCH_INFO , descrevendo o patch triangular de alta ordem a ser desenhado.

Valor retornado

Tipo: HRESULT

Se o método for bem-sucedido, o valor retornado será D3D_OK. Se o método falhar, o valor retornado poderá ser D3DERR_INVALIDCALL.

Comentários

Para patches estáticos: defina o sombreador de vértice, defina os fluxos apropriados, forneça informações de patch no parâmetro pTriPatchInfo e especifique um identificador para que o Direct3D possa capturar e armazenar informações em cache. Para desenhar com eficiência o patch, chame IDirect3DDevice9::D rawTriPatch com pTriPatchInfo definido como NULL. Ao desenhar um patch armazenado em cache, os fluxos definidos no momento são ignorados. Substitua o pNumSegs armazenado em cache especificando um novo valor para pNumSegs. Ao renderizar um patch armazenado em cache, você deve definir o mesmo sombreador de vértice que foi definido quando ele foi capturado.

Chamar IDirect3DDevice9::D rawTriPatch com um identificador invalida o mesmo identificador armazenado em cache por uma chamada anterior IDirect3DDevice9::D rawRectPatch .

Para patches dinâmicos, os dados de patch são alterados para cada renderização do patch para que não seja eficiente armazenar informações em cache. O aplicativo pode transmitir isso para o Direct3D definindo Handle como 0. Nesse caso, o Direct3D desenha o patch usando os fluxos definidos no momento e os valores pNumSegs e não armazena em cache nenhuma informação. Não é válido definir Simultaneamente Handle como 0 e pTriPatchInfo como NULL.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho d3d9helper.h (inclua D3D9.h)
Biblioteca D3D9.lib

Confira também

IDirect3DDevice9

Usando primitivos Higher-Order (Direct3D 9)