IDirect3DDevice9::UpdateSurface 方法 (d3d9.h)

将像素的矩形子集从一个图面复制到另一个图面。

语法

HRESULT UpdateSurface(
  [in] IDirect3DSurface9 *pSourceSurface,
  [in] const RECT        *pSourceRect,
  [in] IDirect3DSurface9 *pDestinationSurface,
  [in] const POINT       *pDestPoint
);

参数

[in] pSourceSurface

类型: IDirect3DSurface9*

指向表示源图面 的 IDirect3DSurface9 接口的指针。 此参数必须指向与 pDestinationSurface 不同的图面。

[in] pSourceRect

类型: const RECT*

指向源图面上矩形的指针。 为此参数指定 NULL 会导致复制整个图面。

[in] pDestinationSurface

类型: IDirect3DSurface9*

指向表示目标图面 的 IDirect3DSurface9 接口的指针。

[in] pDestPoint

类型: const POINT*

指向目标矩形左上角的指针。 为此参数指定 NULL 会导致复制整个图面。

返回值

类型: HRESULT

如果该方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是下列值之一:D3DERR_INVALIDCALL。

注解

此方法类似于 DirectX 8 中的 CopyRects。

此函数具有以下限制。

  • 源图面必须已使用 D3DPOOL_SYSTEMMEM 创建。
  • 目标图面必须已使用 D3DPOOL_DEFAULT 创建。
  • 两个图面都不能锁定或包含未完成的设备上下文。
  • 不能使用多重采样创建这两个图面。 两个图面的唯一有效标志是D3DMULTISAMPLE_NONE。
  • 图面格式不能是深度模具格式。
  • 源和 dest 矩形必须适合表面。
  • 不允许拉伸或收缩, (凹槽的大小必须相同) 。
  • 源格式必须与 dest 格式匹配。
下表显示了支持的组合。
Dest 格式
纹理 RT 纹理 RT 屏幕外纯
Src 格式 纹理 是*
RT 纹理
RT
屏幕外纯
 
  • 如果驱动程序不支持请求的副本,则会使用 lock 和 copy 对其进行模拟。

如果应用程序需要将数据从D3DPOOL_DEFAULT呈现目标复制到D3DPOOL_SYSTEMMEM图面,则可以使用 GetRenderTargetData

要求

要求
目标平台 Windows
标头 d3d9.h (包括 D3D9.h)
Library D3D9.lib

另请参阅

IDirect3DDevice9