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.

Exemplo de RTV e UAV.

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)

Confira também

D3D11DDIARG_BUFFER_UNORDEREDACCESSVIEW

D3D11DDI_DEVICEFUNCS

pfnSetErrorCb