IDirect3DDevice9::GetBackBuffer 方法 (d3d9helper.h)

从设备的交换链中检索后台缓冲区。

语法

HRESULT GetBackBuffer(
  [in]          UINT               iSwapChain,
  [in]          UINT               iBackBuffer,
  [in]          D3DBACKBUFFER_TYPE Type,
  [out, retval] IDirect3DSurface9  **ppBackBuffer
);

参数

[in] iSwapChain

类型: UINT

一个指定交换链的无符号整数。

[in] iBackBuffer

类型: UINT

要返回的后台缓冲区对象的索引。 后台缓冲区的编号从 0 到后台缓冲区的总数减 1。 如果值为 0,则返回第一个后台缓冲区,而不是前缓冲区。 无法通过此方法访问前端缓冲区。 使用 IDirect3DDevice9::GetFrontBufferData 检索前端缓冲区的副本。

[in] Type

类型: D3DBACKBUFFER_TYPE

Direct3D 9 不支持立体视图,因此此参数的唯一有效值是D3DBACKBUFFER_TYPE_MONO。

[out, retval] ppBackBuffer

类型: IDirect3DSurface9**

指向 IDirect3DSurface9 接口的指针的地址,表示返回的后台缓冲区图面。

返回值

类型: HRESULT

如果该方法成功,则返回值D3D_OK。 如果 BackBuffer 等于或超过后台缓冲区的总数,则该函数将失败并返回D3DERR_INVALIDCALL。

备注

调用此方法将增加 IDirect3DSurface9 接口上的内部引用计数。 使用此 IDirect3DSurface9 接口时调用 IUnknown::Release 失败会导致内存泄漏。

要求

   
目标平台 Windows
标头 d3d9helper.h (包括 D3D9.h)
Library D3D9.lib

另请参阅

IDirect3DDevice9

IDirect3DDevice9::GetFrontBufferData