Direct3D 图面 (Direct3D 9)

图面表示显示内存的线性区域,通常驻留在显示卡的显示内存中,尽管图面可以存在于系统内存中。 Surface 由 IDirect3DSurface9 接口管理。

  • 前缓冲区。 由图形适配器转换并在监视器上显示的内存矩形。 在 Direct3D 中,应用程序永远不会直接写入前端缓冲区。
  • 后退缓冲区。 应用程序可以直接写入的内存矩形。 后台缓冲区永远不会直接显示在监视器上。
  • 翻转图面。 将后缓冲区移动到前缓冲区的过程。
  • 交换链。 可以串行呈现到前缓冲区的一个或多个后退缓冲区的集合。

获取 Surface

通过调用以下任一方法创建图面:

Surface 格式确定如何解释图面内存中每个像素的数据。 Direct3D 使用 D3DSURFACE_DESC 结构的 D3DFORMAT 成员来描述图面格式。 可以通过调用 GetDesc 方法检索现有图面的格式。

创建图面后,可以通过调用以下任一方法获取指向它的指针:

IDirect3DSurface9 接口使你能够通过 UpdateSurface 方法间接访问内存。 此方法允许你将一个 IDirect3DSurface9 接口中的像素矩形区域复制到另一个 IDirect3DSurface9 接口。 Surface 接口还具有直接访问显示内存的方法。 例如,可以使用 LockRect 方法锁定显示内存的矩形区域。 使用表面上的锁定矩形区域后,请务必调用 UnlockRect

其他 Surface 主题

详细了解如何将图面与以下任何主题一起使用:

入门