Direct3D 图面 (Direct3D 9)
图面表示显示内存的线性区域,通常驻留在显示卡的显示内存中,尽管图面可以存在于系统内存中。 Surface 由 IDirect3DSurface9 接口管理。
- 前缓冲区。 由图形适配器转换并在监视器上显示的内存矩形。 在 Direct3D 中,应用程序永远不会直接写入前端缓冲区。
- 后退缓冲区。 应用程序可以直接写入的内存矩形。 后台缓冲区永远不会直接显示在监视器上。
- 翻转图面。 将后缓冲区移动到前缓冲区的过程。
- 交换链。 可以串行呈现到前缓冲区的一个或多个后退缓冲区的集合。
获取 Surface
通过调用以下任一方法创建图面:
Surface 格式确定如何解释图面内存中每个像素的数据。 Direct3D 使用 D3DSURFACE_DESC 结构的 D3DFORMAT 成员来描述图面格式。 可以通过调用 GetDesc 方法检索现有图面的格式。
创建图面后,可以通过调用以下任一方法获取指向它的指针:
- GetBackBuffer
- GetCubeMapSurface
- GetDepthStencilSurface
- GetFrontBufferData
- GetRenderTarget
- GetSurfaceLevel
IDirect3DSurface9 接口使你能够通过 UpdateSurface 方法间接访问内存。 此方法允许你将一个 IDirect3DSurface9 接口中的像素矩形区域复制到另一个 IDirect3DSurface9 接口。 Surface 接口还具有直接访问显示内存的方法。 例如,可以使用 LockRect 方法锁定显示内存的矩形区域。 使用表面上的锁定矩形区域后,请务必调用 UnlockRect。
其他 Surface 主题
详细了解如何将图面与以下任何主题一起使用:
- Surface 格式 (Direct3D 9)
- 什么是交换链? (Direct3D 9)
- 宽度与音调 (Direct3D 9)
- 翻转图面(Direct3D 9)
- 页面翻转和后退缓冲(Direct3D 9)
- 复制到图面(Direct3D 9)
- 复制图面(Direct3D 9)
- 直接访问 Surface 内存(Direct3D 9)
- 专用 Surface 数据(Direct3D 9)
- Gamma 控件 (Direct3D 9)
相关主题