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.
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 |