IDirect3DDevice9::UpdateSurface 方法 (d3d9helper.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 rect 必須符合表面。
- 不允許縮放或縮小, (矩形的大小必須相同) 。
- 來源格式必須符合 dest 格式。
Dest 格式 | |||||
---|---|---|---|---|---|
紋理 | RT 紋理 | Rt | 螢幕外純文字 | ||
Src 格式 | 紋理 | 是 | 是 | 是* | 是 |
RT 紋理 | 否 | 否 | 否 | 否 | |
Rt | 否 | 否 | 否 | 否 | |
螢幕外純文字 | 是 | 是 | 是 | 是 |
- 如果驅動程式不支援要求的複本,則會使用鎖定和複製來模擬它。
如果應用程式需要將資料從D3DPOOL_DEFAULT轉譯目標複製到D3DPOOL_SYSTEMMEM介面,則可以使用 GetRenderTargetData。
需求
目標平台 | Windows |
標頭 | d3d9helper.h (包含 D3D9.h) |
程式庫 | D3D9.lib |