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:
- GetBackBuffer
- GetCubeMapSurface
- GetDepthStencilSurface
- GetFrontBufferData
- GetRenderTarget
- GetSurfaceLevel
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:
- Formatos do Surface (Direct3D 9)
- O que é uma cadeia de troca? (Direct3D 9)
- Largura vs. Pitch (Direct3D 9)
- Inverter superfícies (Direct3D 9)
- Inversão de página e buffer de volta (Direct3D 9)
- Copiando para Surfaces (Direct3D 9)
- Copiando superfícies (Direct3D 9)
- Acessando a memória do Surface diretamente (Direct3D 9)
- Dados do Surface Privado (Direct3D 9)
- Controles gama (Direct3D 9)
Tópicos relacionados