Метод 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. Форматы, содержащие альфа-канал, не поддерживаются, так как реализации GDI не имеют четко определенного поведения в альфа-канале. Дополнительные сведения о форматах см. в разделе D3DFORMAT.
- Одновременно можно возвращать только один контекст устройства для каждой поверхности.
- IDirect3DSurface9::GetDC завершится ошибкой, если поверхность уже заблокирована. Если поверхность является членом MIP-карты или кубовой карты, IDirect3DSurface9::GetDC завершается сбоем, если любой другой элемент MIP-карты или кубовой карты заблокирован.
- 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 , чтобы освободить его.
Допустимо вызывать IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC на уровнях MIP-карты или кубовой карты, однако эти вызовы будут медленными для всех miplevel, кроме самого верхнего уровня, и операции GDI для этих миплеев не будут ускоряться.
Hdc предоставляет доступ к функциям Win32 и GDI.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | d3d9helper.h (включая D3D9.h) |
Библиотека | D3D9.lib |