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

Recupera un contexto de dispositivo.

Sintaxis

HRESULT GetDC(
  [out] HDC *phdc
);

Parámetros

[out] phdc

Tipo: HDC*

Puntero al contexto del dispositivo para la superficie.

Valor devuelto

Tipo: HRESULT

Si el método se ejecuta correctamente, el valor devuelto es D3D_OK. D3DERR_INVALIDCALL se devuelve si el argumento no es válido.

Comentarios

Se aplican las restricciones siguientes.

  • IDirect3DSurface9::GetDC solo es válido en los siguientes formatos: D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_R8G8B8 y D3DFMT_X8R8G8B8. Los formatos que contienen Alfa no se admiten porque las implementaciones de GDI no tienen un comportamiento bien definido en el canal alfa. Para obtener más información sobre los formatos, consulte D3DFORMAT.
  • Solo se puede devolver un contexto de dispositivo por superficie a la vez.
  • IDirect3DSurface9::GetDC producirá un error si la superficie ya está bloqueada. Si la superficie es miembro de un mapa mip o un mapa de cubos, IDirect3DSurface9::GetDC produce un error si se bloquea cualquier otro miembro mipmap o cubemap.
  • IDirect3DSurface9::GetDC produce un error en los destinos de representación a menos que se hayan creado bloqueos (o, en el caso de los búferes de reserva, con la marca D3DPRESENTFLAG_LOCKABLE_BACKBUFFER).
  • En el caso de las superficies no creadas con IDirect3DDevice9::CreateOffscreenPlainSurface, IDirect3DSurface9::GetDC producirá un error en las superficies predeterminadas del grupo (D3DPOOL_DEFAULT), a menos que sean dinámicas (D3DUSAGE_DYNAMIC) o sean destinos de representación bloqueables.
  • IDirect3DSurface9::GetDC producirá un error en D3DPOOL_SCRATCH superficies.
Cuando un contexto de dispositivo está pendiente en una superficie, es posible que la aplicación no llame a estos métodos:
IDirect3DCubeTexture9 IDirect3DCubeTexture9::LockRect
IDirect3DDevice9 IDirect3DDevice9::ColorFill
IDirect3DDevice9::StretchRect
IDirect3DDevice9::UpdateSurface
IDirect3DDevice9::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9::P resent *
IDirect3DTexture9 IDirect3DTexture9::LockRect
 
  • (en una cadena de intercambio que contiene la superficie)

IDirect3DSurface9::GetDC provoca un bloqueo implícito; no conservan el contexto del dispositivo para su uso posterior. Llame a IDirect3DSurface9::ReleaseDC para liberarlo.

Es válido llamar a IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC en niveles de un mapa mip o un mapa de cubos, sin embargo, estas llamadas serán lentas a todos los miplevels excepto el nivel superior, y las operaciones GDI a estos miplevels no se acelerarán.

Hdc proporciona acceso a la funcionalidad win32 y GDI.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado d3d9helper.h (incluya D3D9.h)
Library D3D9.lib

Consulte también

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC