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 |