Condividi tramite


Metodo IDirect3DSurface9::GetDC (d3d9helper.h)

Recupera un contesto di dispositivo.

Sintassi

HRESULT GetDC(
  [out] HDC *phdc
);

Parametri

[out] phdc

Tipo: HDC*

Puntatore al contesto del dispositivo per la superficie.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito viene D3D_OK. D3DERR_INVALIDCALL viene restituito se l'argomento non è valido.

Commenti

Si applicano le restrizioni seguenti.

  • IDirect3DSurface9::GetDC è valido solo nei formati seguenti: D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_R8G8B8 e D3DFMT_X8R8G8B8. I formati che contengono Alfa non sono supportati perché le implementazioni GDI non hanno un comportamento ben definito nel canale alfa. Per altre informazioni sui formati, vedere D3DFORMAT.
  • È possibile restituire un solo contesto di dispositivo per superficie alla volta.
  • IDirect3DSurface9::GetDC avrà esito negativo se la superficie è già bloccata. Se la superficie è un membro di un mipmap o di una mappa cubo, IDirect3DSurface9::GetDC ha esito negativo se un altro membro mipmap o cubemap è bloccato.
  • IDirect3DSurface9::GetDC ha esito negativo nelle destinazioni di rendering a meno che non siano state create bloccate (o, nel caso dei buffer back, con il flag D3DPRESENTFLAG_LOCKABLE_BACKBUFFER).
  • Per le superfici non create con IDirect3DDevice9::CreateOffscreenPlainSurface, IDirect3DSurface9::GetDC avrà esito negativo nelle superfici del pool predefinito (D3DPOOL_DEFAULT) a meno che non siano dinamiche (D3DUSAGE_DYNAMIC) o siano destinazioni di rendering bloccabili.
  • IDirect3DSurface9::GetDC avrà esito negativo sulle superfici D3DPOOL_SCRATCH.
Quando un contesto di dispositivo è in sospeso in una superficie, l'applicazione potrebbe non chiamare questi metodi:
IDirect3DCubeTexture9 IDirect3DCubeTexture9::LockRect
IDirect3DDevice9 IDirect3DDevice9::ColorFill
IDirect3DDevice9::StretchRect
IDirect3DDevice9::UpdateSurface
IDirect3DDevice9::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9::P resent *
IDirect3DTexture9 IDirect3DTexture9::LockRect
 
  • (su una catena di scambio che contiene la superficie)

IDirect3DSurface9::GetDC causa un blocco implicito; non conservare il contesto del dispositivo per un uso successivo. Chiama IDirect3DSurface9::ReleaseDC per rilasciarlo.

È valido chiamare IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC sui livelli di una mappa mipmap o cubo, ma queste chiamate saranno lente a tutte le miplevel, ad eccezione del livello più alto e le operazioni GDI a questi miplevel non verranno accelerate.

Hdc fornisce l'accesso alle funzionalità Win32 e GDI.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d9helper.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC