Freigeben über


IDirect3DSurface9::GetDC-Methode (d3d9.h)

Ruft einen Gerätekontext ab.

Syntax

HRESULT GetDC(
  [out] HDC *phdc
);

Parameter

[out] phdc

Typ: HDC*

Zeiger auf den Gerätekontext für die Oberfläche.

Rückgabewert

Typ: HRESULT

Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. D3DERR_INVALIDCALL wird zurückgegeben, wenn das Argument ungültig ist.

Hinweise

Es gelten die folgenden Einschränkungen.

  • IDirect3DSurface9::GetDC ist nur für die folgenden Formate gültig: D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_R8G8B8 und D3DFMT_X8R8G8B8. Formate, die Alpha enthalten, werden nicht unterstützt, da die GDI-Implementierungen kein klar definiertes Verhalten im Alphakanal aufweisen. Weitere Informationen zu Formaten finden Sie unter D3DFORMAT.
  • Es kann jeweils nur ein Gerätekontext pro Oberfläche zurückgegeben werden.
  • IDirect3DSurface9::GetDC schlägt fehl, wenn die Oberfläche bereits gesperrt ist. Wenn die Oberfläche ein Member einer mipmap oder cubemap ist, schlägt IDirect3DSurface9::GetDC fehl, wenn ein anderes mipmap- oder cubemap-Element gesperrt ist.
  • IDirect3DSurface9::GetDC schlägt bei Renderzielen fehl, es sei denn, sie wurden gesperrt (oder, im Fall von Backpuffern, mit dem flag D3DPRESENTFLAG_LOCKABLE_BACKBUFFER).
  • Bei Oberflächen, die nicht mit IDirect3DDevice9::CreateOffscreenPlainSurface erstellt wurden, schlägt IDirect3DSurface9::GetDC auf Standardpooloberflächen (D3DPOOL_DEFAULT) fehl, es sei denn, sie sind dynamische (D3DUSAGE_DYNAMIC) oder absperrbare Renderziele.
  • IDirect3DSurface9::GetDC schlägt auf D3DPOOL_SCRATCH Oberflächen fehl.
Wenn ein Gerätekontext auf einer Oberfläche aussteht, ruft die Anwendung diese Methoden möglicherweise nicht auf:
IDirect3DCubeTexture9 IDirect3DCubeTexture9::LockRect
IDirect3DDevice9 IDirect3DDevice9::ColorFill
IDirect3DDevice9::StretchRect
IDirect3DDevice9::UpdateSurface
IDirect3DDevice9::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9::P resent *
IDirect3DTexture9 IDirect3DTexture9::LockRect
 
  • (in einer Swapchain, die die Oberfläche enthält)

IDirect3DSurface9::GetDC verursacht eine implizite Sperre; behalten Sie den Gerätekontext nicht zur späteren Verwendung bei. Rufen Sie IDirect3DSurface9::ReleaseDC auf, um es freizugeben.

Es ist gültig, IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC auf Ebenen einer mipmap oder cubemap aufzurufen. Diese Aufrufe sind jedoch für alle miplevels mit Ausnahme der obersten Ebene langsam, und GDI-Vorgänge auf diesen Miplevels werden nicht beschleunigt.

Hdc bietet Zugriff auf Win32- und GDI-Funktionen.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile d3d9.h (einschließlich D3D9.h)
Bibliothek D3D9.lib

Weitere Informationen

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC