Surfaces Direct3D (Direct3D 9)
Une surface représente une zone linéaire de mémoire d’affichage et réside généralement dans la mémoire d’affichage de la carte d’affichage, bien que les surfaces puissent exister dans la mémoire système. Les surfaces sont gérées par l’interface IDirect3DSurface9.
- Mémoire tampon frontale. Rectangle de mémoire traduit par l’adaptateur graphique et affiché sur le moniteur. Dans Direct3D, une application n’écrit jamais directement dans la mémoire tampon frontale.
- Mémoire tampon de retour. Rectangle de mémoire dans lequel une application peut écrire directement. La mémoire tampon arrière n’est jamais affichée directement sur le moniteur.
- Surfaces de découpage. Processus de déplacement de la mémoire tampon arrière vers la mémoire tampon frontale.
- Chaîne d’échange. Collection d’une ou plusieurs mémoires tampons d’arrière-plan qui peuvent être présentées en série à la mémoire tampon frontale.
Obtention d’une surface
Créez une surface en appelant l’une de ces méthodes :
- CreateDepthStencilSurface
- CreateOffscreenPlainSurface
- CreateRenderTarget
Les formats Surface déterminent la façon dont les données de chaque pixel de la mémoire surface sont interprétées. Direct3D utilise le membre D3DFORMAT de la structure D3DSURFACE_DESC pour décrire le format de surface. Vous pouvez récupérer le format d’une surface existante en appelant la méthode GetDesc.
Une fois qu’une surface est créée, vous pouvez obtenir un pointeur vers celui-ci en appelant l’une de ces méthodes :
- GetBackBuffer
- GetCubeMapSurface
- GetDepthStencilSurface
- GetFrontBufferData
- GetRenderTarget
- GetSurfaceLevel
L’interface IDirect3DSurface9 vous permet d’accéder indirectement à la mémoire via la méthode UpdateSurface. Cette méthode vous permet de copier une région rectangulaire de pixels d’une interface IDirect3DSurface9 vers une autre interface IDirect3DSurface9. L’interface surface a également des méthodes permettant d’accéder directement à la mémoire d’affichage. Par exemple, vous pouvez utiliser la méthode LockRect pour verrouiller une région rectangulaire de mémoire d’affichage. Il est important d’appeler UnlockRect une fois que vous avez terminé d’utiliser la zone rectangulaire verrouillée sur la surface.
Rubriques supplémentaires sur l’aire
Découvrez comment utiliser des surfaces avec l’une de ces rubriques :
- formats surface (Direct3D 9)
- Qu’est-ce qu’une chaîne d’échange ? (Direct3D 9)
- Width vs. Pitch (Direct3D 9)
- surfaces de découpage (Direct3D 9)
- la capture de page et la mise en mémoire tampon arrière (Direct3D 9)
- copie sur surfaces (Direct3D 9)
- copie de surfaces (Direct3D 9)
- accéder directement à la mémoire Surface (Direct3D 9)
- données surface privées (Direct3D 9)
- contrôles Gamma (Direct3D 9)
Rubriques connexes