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 创建的图面, IDirect3DSurface9::GetDC 将在默认池 (D3DPOOL_DEFAULT) 图面上失败,除非它们是动态 (D3DUSAGE_DYNAMIC) 或可锁定的呈现目标。
- 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 的 GDI 操作。
hdc 提供对 Win32 和 GDI 功能的访问权限。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d9helper.h (包括 D3D9.h) |
Library | D3D9.lib |