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 rects 必須符合表面。
  • 不允許縮放或壓縮, (rects 的大小必須相同) 。
  • 來源格式必須符合 dest 格式。
下表顯示支持的組合。
Dest 格式
紋理 RT 紋理 Rt 螢幕外純文字
Src 格式 紋理 Yes Yes 是* Yes
RT 紋理 No No No No
Rt No No No No
螢幕外純文字 Yes Yes Yes Yes
 
  • 如果驅動程式不支援要求的複本,則會使用鎖定和複製來模擬。

如果應用程式需要將數據從D3DPOOL_DEFAULT轉譯目標複製到D3DPOOL_SYSTEMMEM介面,則可以使用 GetRenderTargetData

規格需求

需求
目標平台 Windows
標頭 d3d9.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

IDirect3DDevice9