Método IDirect3DDevice9::SetRenderTarget (d3d9helper.h)

Define um novo buffer de cores para o dispositivo.

Sintaxe

HRESULT SetRenderTarget(
  [in] DWORD             RenderTargetIndex,
  [in] IDirect3DSurface9 *pRenderTarget
);

Parâmetros

[in] RenderTargetIndex

Tipo: DWORD

Índice do destino de renderização. Consulte Observações.

[in] pRenderTarget

Tipo: IDirect3DSurface9*

Ponteiro para um novo buffer de cores. Se NULL, o buffer de cores do RenderTargetIndex correspondente será desabilitado. Os dispositivos sempre devem ser associados a um buffer de cores. A nova superfície de destino de renderização deve ter pelo menos D3DUSAGE_RENDERTARGET especificado.

Valor retornado

Tipo: HRESULT

Se o método for bem-sucedido, o valor retornado será D3D_OK. Esse método retornará D3DERR_INVALIDCALL se:

  • pRenderTarget = NULL e RenderTargetIndex = 0
  • pRenderTarget é != NULL e o destino de renderização é inválido.

Comentários

O dispositivo pode dar suporte a vários destinos de renderização. O número de destinos de renderização com suporte por um dispositivo está contido no membro NumSimultaneousRTs de D3DCAPS9. Consulte Vários destinos de renderização (Direct3D 9).

Definir um novo destino de renderização fará com que o visor (consulte Visores e Recorte (Direct3D 9)) seja definido como o tamanho total do novo destino de renderização.

Alguns hardwares testam a compatibilidade do buffer de estêncil de profundidade com o buffer de cores. Se isso for feito, ele só será feito em um build de depuração.

As restrições para usar esse método incluem o seguinte:

  • O tipo multisampla deve ser o mesmo para o destino de renderização e a superfície do estêncil de profundidade.
  • Os formatos devem ser compatíveis com o destino de renderização e a superfície do estêncil de profundidade. Consulte IDirect3D9::CheckDepthStencilMatch.
  • O tamanho da superfície do estêncil de profundidade deve ser maior ou igual ao tamanho do destino de renderização.
Essas restrições são validadas somente ao usar o runtime de depuração quando qualquer um dos métodos IDirect3DDevice9Draw é chamado.

As texturas de cubo diferem de outras superfícies, pois são coleções de superfícies. Para chamar IDirect3DDevice9::SetRenderTarget com uma textura de cubo, você deve selecionar um rosto individual usando IDirect3DCubeTexture9::GetCubeMapSurface e passar a superfície resultante para IDirect3DDevice9::SetRenderTarget.

Requisitos

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

Confira também

IDirect3DDevice9