Método IDirect3DSurface9::GetDC (d3d9helper.h)

Recupera um contexto de dispositivo.

Sintaxe

HRESULT GetDC(
  [out] HDC *phdc
);

Parâmetros

[out] phdc

Tipo: HDC*

Ponteiro para o contexto do dispositivo para a superfície.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, o valor retornado será D3D_OK. D3DERR_INVALIDCALL será retornado se o argumento for inválido.

Comentários

As restrições a seguir se aplicam.

  • IDirect3DSurface9::GetDC é válido apenas nos seguintes formatos: D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_R8G8B8 e D3DFMT_X8R8G8B8. Não há suporte para formatos que contenham Alfa porque as implementações de GDI não têm um comportamento bem definido no canal alfa. Para obter mais informações sobre formatos, consulte D3DFORMAT.
  • Somente um contexto de dispositivo por superfície pode ser retornado por vez.
  • IDirect3DSurface9::GetDC falhará se a superfície já estiver bloqueada. Se a superfície for membro de um mipmap ou cubemap, IDirect3DSurface9::GetDC falhará se qualquer outro membro mipmap ou cubemap estiver bloqueado.
  • IDirect3DSurface9::GetDC falha em destinos de renderização, a menos que eles tenham sido criados bloqueáveis (ou, no caso de buffers de fundo, com o sinalizador D3DPRESENTFLAG_LOCKABLE_BACKBUFFER).
  • Para superfícies não criadas com IDirect3DDevice9::CreateOffscreenPlainSurface, IDirect3DSurface9::GetDC falhará em superfícies de pool padrão (D3DPOOL_DEFAULT), a menos que sejam dinâmicas (D3DUSAGE_DYNAMIC) ou sejam destinos de renderização bloqueáveis.
  • IDirect3DSurface9::GetDC falhará em D3DPOOL_SCRATCH superfícies.
Quando um contexto de dispositivo está pendente em uma superfície, o aplicativo pode não chamar estes métodos:
IDirect3DCubeTexture9 IDirect3DCubeTexture9::LockRect
IDirect3DDevice9 IDirect3DDevice9::ColorFill
IDirect3DDevice9::StretchRect
IDirect3DDevice9::UpdateSurface
IDirect3DDevice9::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9::P resent *
IDirect3DTexture9 IDirect3DTexture9::LockRect
 
  • (em uma cadeia de troca que contém a superfície)

IDirect3DSurface9::GetDC causa um bloqueio implícito; não retenha o contexto do dispositivo para uso posterior. Chame IDirect3DSurface9::ReleaseDC para liberá-lo.

É válido chamar IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC nos níveis de um mipmap ou cubemap. No entanto, essas chamadas serão lentas para todos os miplevels, exceto o nível mais alto, e as operações de GDI para esses miplevels não serão aceleradas.

O hdc fornece acesso à funcionalidade Win32 e GDI.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho d3d9helper.h (inclua D3D9.h)
Biblioteca D3D9.lib

Confira também

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC