Direct3D Surfaces (Direct3D 9)

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

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

获取 Surface

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

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

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

使用 IDirect3DSurface9 接口,可以通过 UpdateSurface 方法间接访问内存。 此方法允许将像素的矩形区域从一个 IDirect3DSurface9 接口复制到另一个 IDirect3DSurface9 接口。 Surface 接口还具有直接访问显示内存的方法。 例如,可以使用 LockRect 方法锁定显示内存的矩形区域。 在处理完图面上锁定的矩形区域后,调用 UnlockRect 非常重要。

其他 Surface 主题

详细了解如何将表面与以下任何主题配合使用:

入门