PFND3D11DDI_SETRENDERTARGETS função de retorno de chamada (d3d10umddi.h)
A função SetRenderTargets(D3D11) define superfícies de destino de renderização.
Sintaxe
PFND3D11DDI_SETRENDERTARGETS Pfnd3d11ddiSetrendertargets;
void Pfnd3d11ddiSetrendertargets(
[in] D3D10DDI_HDEVICE unnamedParam1,
[in] const D3D10DDI_HRENDERTARGETVIEW *unnamedParam2,
[in] UINT NumRTVs,
[in] UINT ClearSlots,
[in] D3D10DDI_HDEPTHSTENCILVIEW unnamedParam5,
[in] const D3D11DDI_HUNORDEREDACCESSVIEW *unnamedParam6,
[in] const UINT *unnamedParam7,
UINT UAVStartSlot,
[in] UINT NumUAVs,
[in] UINT UAVRangeStart,
[in] UINT UAVRangeSize
)
{...}
Parâmetros
[in] unnamedParam1
hDevice: um identificador para o dispositivo de exibição (contexto gráfico).
[in] unnamedParam2
phRenderTargetView: uma matriz de identificadores para os objetos RTV (modo de exibição de destino de renderização) a serem definidos. Observe que alguns valores de identificador podem ser NULL.
[in] NumRTVs
O número de elementos na matriz fornecida em phRenderTargetView para os RTVs a serem definidos.
[in] ClearSlots
O número de objetos RTV a serem desassociados; ou seja, esses objetos de exibição de destino de renderização que foram associados anteriormente, mas não precisam mais ser associados.
[in] unnamedParam5
hDepthStencilView: um identificador para o buffer de estêncil de profundidade a ser definido.
[in] unnamedParam6
phUnorderedAccessView: uma matriz de identificadores para os objetos UAV (exibição de acesso não ordenado) a serem definidos.
[in] unnamedParam7
pUAVInitialCounts: uma matriz de acréscimo e consumo de deslocamentos de buffer. Esse parâmetro só é relevante para UAVs da matriz phUnorderedAccessView que foram criadas com D3D11_DDI_BUFFER_UAV_FLAG_APPEND ou D3D11_DDI_BUFFER_UAV_FLAG_COUNTER definidos no membro Flags da estrutura D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW quando o UAV foi criado; caso contrário, ele será ignorado. Se um elemento nessa matriz for definido como -1, o deslocamento atual para esse buffer de acréscimo e consumo deverá ser mantido. Qualquer outro valor faz com que o driver defina o contador oculto para que o UAV acrescente e consuma o buffer.
UAVStartSlot
Índice do primeiro UAV a ser associado. UAVStartSlot deve ser pelo menos tão grande quanto o parâmetro NumRTVs .
Observação
Existe apenas um conjunto compartilhado de pontos de associação para RTVs e UAVs. Os RTVs são associados primeiro, seguidos por UAVs.
[in] NumUAVs
O número de UAVs a serem associados.
[in] UAVRangeStart
O primeiro UAV no conjunto de todos os UAVs atualizados (que inclui associações NULL ).
[in] UAVRangeSize
O número de UAVs no conjunto de todos os UAVs atualizados (que inclui associações NULL ).
Retornar valor
Nenhum
Comentários
Descritores de recursos como RTVs e UAVs devem ser associados (colocados em slots de entrada) antes que os sombreadores possam acessá-los para leitura ou gravação.
A imagem a seguir mostra um exemplo com cinco recursos.
No exemplo acima:
- NumRTVs = 2
- UAVStartSlot = 2
- NumUAVs = 3
NumUAVs e UAVStartSlot especificam qual intervalo na matriz UAVs contém alterações em relação ao estado associado anteriormente. Observe que os pontos no intervalo podem ficar inalterados.
Os parâmetros UAVRangeStart e UAVRangeSize são uma conveniência que revela o intervalo do que realmente mudou , dado que a DDI do Direct3D sempre associa tudo (incluindo o que não mudou). O runtime D3D11 os formula em nome do aplicativo como informações adicionais para gravadores de driver como dicas para uma possível otimização. Normalmente, o runtime D3D11 chamará essa função com os valores UAVRangeStart e UAVRangeSize para indicar todo o intervalo. Usando o exemplo acima:
- Para escolher todo o intervalo (nenhuma alteração acredita-se que aconteça), UAVRangeStart = 2 e UAVRangeSize = 3.
- Para indicar que apenas o primeiro UAV pode ter sido alterado, UAVRangeStart = 2 e UAVRangeSize = 1.
O driver pode usar a função de retorno de chamada pfnSetErrorCb para definir um código de erro.
O driver não deve encontrar nenhum erro, exceto para D3DDDIERR_DEVICEREMOVED. Portanto, se o driver passar qualquer erro, exceto por D3DDDIERR_DEVICEREMOVED, em uma chamada para a função pfnSetErrorCb , o runtime do Microsoft Direct3D determinará que o erro é crítico. Mesmo que o dispositivo tenha sido removido, o driver não precisará retornar D3DDDIERR_DEVICEREMOVED; no entanto, se a remoção do dispositivo interferiu na operação de SetRenderTargets (o que normalmente não deve acontecer), o driver poderá retornar D3DDDIERR_DEVICEREMOVED.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | SetRenderTargets(D3D11) tem suporte a partir do sistema operacional Windows 7. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | d3d10umddi.h (inclua D3d10umddi.h) |