Compartilhar via


Introdução à apresentação de uma cena (Direct3D 9)

As APIs de apresentação são um conjunto de métodos que controlam o estado do dispositivo que afeta o que o usuário vê no monitor. Esses métodos incluem a configuração de modos de exibição e métodos uma vez por quadro que são usados para apresentar imagens ao usuário.

Familiaridade com os termos a seguir é necessário para entender as APIs de apresentação.

  • buffer frontal. Um retângulo de memória traduzido pelo adaptador gráfico e exibido no monitor ou em outro dispositivo de saída.
  • buffer de fundo. Uma superfície cujo conteúdo pode ser promovido para o buffer frontal.
  • cadeia de troca. Uma coleção de buffers traseiros que podem ser apresentados serialmente ao buffer frontal. Normalmente, uma cadeia de troca de tela inteira apresenta imagens subsequentes com a DDI (interface de driver de dispositivo) invertida e uma cadeia de troca em janelas apresenta imagens com a DDI de blitting.

Como o Direct3D 9 tem uma cadeia de troca como propriedade do dispositivo, há sempre pelo menos uma cadeia de troca por dispositivo. A interface IDirect3DDevice9 tem um conjunto de métodos que manipulam a cadeia de troca implícita e são uma cópia da própria interface da cadeia de troca. Os aplicativos podem criar cadeias de troca adicionais; no entanto, isso não é necessário para o aplicativo típico de janela única ou de tela inteira.

O buffer frontal não é exposto diretamente no Direct3D 9. Como resultado, os aplicativos não podem bloquear ou renderizar no buffer frontal. Para obter detalhes, consulte Acessando o buffer frontal de cores (Direct3D 9).

Observação

O DirectX 7 forneceu várias APIs de apresentação que foram chamadas juntas. Um bom exemplo disso é a sequência IDirectDraw7::SetCooperativeLevel, IDirectDraw7::SetDisplayMode e IDirectDraw7::CreateSurface. Além disso, os métodos IDirectDrawSurface7::Flip e IDirectDrawSurface7::Blt sinalizaram o transporte de quadros renderizados para o monitor. O Direct3D 9 recolhe esses grupos de APIs em dois métodos main, Redefinir e Apresentar. Redefinir subsumes SetCooperativeLevel, SetDisplayMode, CreateSurface e alguns dos parâmetros a serem invertidos. Apresentar subsumes inverte e a apresentação usa blit.

 

Uma chamada para IDirect3D9::CreateDevice representa uma redefinição implícita do dispositivo. A API do Direct3D 9 não tem noção de uma superfície primária; não é possível criar um objeto que represente a superfície primária. Ele é considerado uma propriedade interna do dispositivo.

As rampas gama são associadas a uma cadeia de troca e são manipuladas com os métodos IDirect3DDevice9::GetGammaRamp e IDirect3DDevice9::SetGammaRamp .

Apresentando uma cena