Superfícies Direct3D (Direct3D 9)

Uma superfície representa uma área linear de memória de exibição e geralmente reside na memória de exibição do cartão de exibição, embora as superfícies possam existir na memória do sistema. As superfícies são gerenciadas pela interface IDirect3DSurface9 .

  • Buffer frontal. Um retângulo de memória que é traduzido pelo adaptador gráfico e exibido no monitor. No Direct3D, um aplicativo nunca grava diretamente no buffer frontal.
  • Buffer de volta. Um retângulo de memória no qual um aplicativo pode gravar diretamente. O buffer traseiro nunca é exibido diretamente no monitor.
  • Inverter superfícies. O processo de mover o buffer traseiro para o buffer frontal.
  • Trocar cadeia. Uma coleção de um ou mais buffers traseiros que podem ser apresentados serialmente ao buffer frontal.

Obtendo um Surface

Crie uma superfície chamando qualquer um desses métodos:

Os formatos do Surface determinam como os dados de cada pixel na memória da superfície são interpretados. O Direct3D usa o membro D3DFORMAT da estrutura D3DSURFACE_DESC para descrever o formato de superfície. Você pode recuperar o formato de uma superfície existente chamando o método GetDesc .

Depois que uma superfície é criada, você pode obter um ponteiro para ela chamando qualquer um desses métodos:

A interface IDirect3DSurface9 permite que você acesse indiretamente a memória por meio do método UpdateSurface . Esse método permite copiar uma região retangular de pixels de uma interface IDirect3DSurface9 para outra interface IDirect3DSurface9 . A interface surface também tem métodos para acessar diretamente a memória de exibição. Por exemplo, você pode usar o método LockRect para bloquear uma região retangular da memória de exibição. É importante chamar UnlockRect depois que você terminar de trabalhar com a região retangular bloqueada na superfície.

Tópicos adicionais do Surface

Saiba mais sobre como usar superfícies com qualquer um destes tópicos:

Introdução