Share via


IDirect3DSurface9::GetDC 方法 (d3d9helper.h)

擷取裝置內容。

語法

HRESULT GetDC(
  [out] HDC *phdc
);

參數

[out] phdc

類型: HDC*

介面裝置內容的指標。

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果自變數無效,則會傳回D3DERR_INVALIDCALL。

備註

適用下列限制。

  • IDirect3DSurface9::GetDC 僅適用於下列格式:D3DFMT_R5G6B5、D3DFMT_X1R5G5B5、D3DFMT_R8G8B8和D3DFMT_X8R8G8B8。 不支援包含 Alpha 的格式,因為 GDI 實作在 Alpha 通道上沒有妥善定義的行為。 如需格式的詳細資訊,請參閱 D3DFORMAT
  • 每個表面一次只能傳回一個裝置內容。
  • 如果介面已鎖定,IDirect3DSurface9::GetDC 將會失敗。 如果表面是 mipmap 或 Cubemap 的成員,如果鎖定任何其他 Mipmap 或 Cubemap 成員, IDirect3DSurface9::GetDC 就會失敗。
  • 除非在轉譯目標上建立可鎖定 (的 IDirect3DSurface9::GetDC,否則會在轉譯目標上失敗,或在後端緩衝區的情況下,使用D3DPRESENTFLAG_LOCKABLE_BACKBUFFER旗標) 。
  • 對於未使用 IDirect3DDevice9::CreateOffscreenPlainSurface 建立的介面,除非它們是動態 (D3DUSAGE_DYNAMIC) 或可鎖定的轉譯目標,否則預設集區 (D3DPOOL_DEFAULT) 上的 IDirect3DSurface9::GetDC 將會失敗。
  • IDirect3DSurface9::GetDC 會在D3DPOOL_SCRATCH介面上失敗。
當裝置內容在介面上未完成時,應用程式可能不會呼叫這些方法:
IDirect3DCubeTexture9 IDirect3DCubeTexture9::LockRect
IDirect3DDevice9 IDirect3DDevice9::ColorFill
IDirect3DDevice9::StretchRect
IDirect3DDevice9::UpdateSurface
IDirect3DDevice9::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9::P resent *
IDirect3DTexture9 IDirect3DTexture9::LockRect
 
  • 在包含介面) 的交換鏈結上 (

IDirect3DSurface9::GetDC 會導致隱含鎖定;請勿保留裝置內容以供稍後使用。 呼叫 IDirect3DSurface9::ReleaseDC 以釋出它。

在 mipmap 或 Cubemap 層級上呼叫 IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC 是有效的,不過,除了最上層以外,這些呼叫將會變慢到所有 Miplevel,而且不會加速這些 Miplevel 的 GDI 作業。

hdc 提供 Win32 和 GDI 功能的存取權。

規格需求

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

另請參閱

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC