PFND3DDDI_SETSTREAMSOURCEFREQ função de retorno de chamada (d3dumddi.h)
A função SetStreamSourceFreq define o divisor de frequência de uma fonte de fluxo associada a um buffer de vértice.
Sintaxe
PFND3DDDI_SETSTREAMSOURCEFREQ Pfnd3dddiSetstreamsourcefreq;
HRESULT Pfnd3dddiSetstreamsourcefreq(
HANDLE hDevice,
const D3DDDIARG_SETSTREAMSOURCEFREQ *unnamedParam2
)
{...}
Parâmetros
hDevice
Um identificador para o dispositivo de exibição (contexto gráfico).
unnamedParam2
pData [in]
Um ponteiro para uma estrutura D3DDDIARG_SETSTREAMSOURCEFREQ que especifica como o divisor de frequência para a origem do fluxo é definido.
Retornar valor
SetStreamSourceFreq retornará S_OK ou um resultado de erro apropriado se o divisor de frequência da parte da origem do fluxo de vértice não for definido com êxito.
Comentários
Um driver de exibição no modo de usuário para um dispositivo que dá suporte ao sombreador de vértice versão 3.0 e posterior deve implementar a divisão de frequência de fluxo de vértice. Para a versão 2.0 e modelos anteriores do sombreador de vértice (incluindo a função fixa), o sombreador de vértice é chamado uma vez para cada vértice. Para cada chamada, os registros de vértice de entrada são inicializados com elementos de vértice exclusivos dos fluxos de vértice. No entanto, se o driver usar a divisão de frequência de fluxo de vértice, o sombreador de vértice (3.0 e posterior) poderá ser chamado para inicializar os registros de entrada aplicáveis a uma taxa menos frequente.
Depois que o divisor de frequência do fluxo for definido, por exemplo, como 2, o driver deverá buscar dados do fluxo e passar esses dados para registros de vértice de entrada aplicáveis a cada 2 vértices. Esse divisor afeta cada elemento no fluxo.
O driver usa o divisor de frequência para calcular o deslocamento de vértice no buffer de vértice de acordo com a seguinte fórmula:
VertexOffset = ((VertexIndex / Divider) * StreamStride) + StreamOffset
Para cada fluxo de vértice usado, se o driver receber um valor de vértice inicial durante uma chamada para a função DrawPrimitive do driver, o driver também dividirá esse valor de vértice inicial pelo divisor de frequência e fatora o resultado na fórmula. Esse valor de vértice inicial é fornecido no membro VStart da estrutura D3DDDIARG_DRAWPRIMITIVE . A fórmula a seguir inclui o valor de vértice inicial:
VertexOffset = (StartVertex / Divider) +
((VertexIndex / Divider) * StreamStride) + StreamOffset
Observe que as fórmulas anteriores usam a divisão de inteiros.
O driver ignora a configuração do divisor de frequência de um fluxo para primitivos indexados ou se o driver dá suporte apenas a um modelo de sombreador de vértice anterior à versão 3.0 (incluindo a função fixa).
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível no Windows Vista e versões posteriores dos sistemas operacionais Windows. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3dumddi.h (inclua D3dumddi.h) |