Compartilhar via


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

Desenha um patch retangular usando os fluxos definidos no momento.

Sintaxe

HRESULT DrawRectPatch(
  [in] UINT                    Handle,
  [in] const float             *pNumSegs,
  [in] const D3DRECTPATCH_INFO *pRectPatchInfo
);

Parâmetros

[in] Handle

Tipo: UINT

Manipule para o patch retangular a ser desenhado.

[in] pNumSegs

Tipo: const float*

Ponteiro para uma matriz de quatro valores de ponto flutuante que identificam o número de segmentos em que cada borda do patch de retângulo deve ser dividida quando mosaico. Veja D3DRECTPATCH_INFO.

[in] pRectPatchInfo

Tipo: const D3DRECTPATCH_INFO*

Ponteiro para uma estrutura D3DRECTPATCH_INFO , descrevendo o patch retangular a ser desenhado.

Retornar valor

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 pRectPatchInfo e especifique um identificador para que o Direct3D possa capturar e armazenar informações em cache. Chame IDirect3DDevice9::D rawRectPatch posteriormente com pRectPatchInfo definido como NULL para desenhar com eficiência o patch. 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 rawRectPatch com um identificador invalida o mesmo identificador armazenado em cache por uma chamada IDirect3DDevice9::D rawTriPatch anterior.

Para patches dinâmicos, os dados de patch são alterados para cada renderização do patch, portanto, não é 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 pRectPatchInfo como NULL.

Requisitos

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

Confira também

IDirect3DDevice9

IDirect3DDevice9::D eletePatch

Usando primitivos Higher-Order (Direct3D 9)