Partager via


Méthode IDirect3DSurface9 ::GetDC (d3d9.h)

Récupère un contexte d’appareil.

Syntaxe

HRESULT GetDC(
  [out] HDC *phdc
);

Paramètres

[out] phdc

Type : HDC*

Pointeur vers le contexte de l’appareil pour la surface.

Valeur retournée

Type : HRESULT

Si la méthode réussit, la valeur de retour est D3D_OK. D3DERR_INVALIDCALL est retourné si l’argument n’est pas valide.

Remarques

Les restrictions suivantes s’appliquent.

  • IDirect3DSurface9 ::GetDC est valide uniquement sur les formats suivants : D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_R8G8B8 et D3DFMT_X8R8G8B8. Les formats qui contiennent alpha ne sont pas pris en charge, car les implémentations GDI n’ont pas un comportement bien défini sur le canal alpha. Pour plus d’informations sur les formats, consultez D3DFORMAT.
  • Un seul contexte d’appareil par surface peut être retourné à la fois.
  • IDirect3DSurface9 ::GetDC échoue si la surface est déjà verrouillée. Si la surface est membre d’un mipmap ou d’un cubemap, IDirect3DSurface9 ::GetDC échoue si un autre membre mipmap ou cubemap est verrouillé.
  • IDirect3DSurface9 ::GetDC échoue sur les cibles de rendu, sauf si elles ont été créées verrouillables (ou, dans le cas des mémoires tampons arrière, avec l’indicateur D3DPRESENTFLAG_LOCKABLE_BACKBUFFER).
  • Pour les surfaces non créées avec IDirect3DDevice9 ::CreateOffscreenPlainSurface, IDirect3DSurface9 ::GetDC échoue sur les surfaces de pool par défaut (D3DPOOL_DEFAULT), sauf s’il s’agit de cibles de rendu dynamiques (D3DUSAGE_DYNAMIC) ou verrouillables.
  • IDirect3DSurface9 ::GetDC échoue sur D3DPOOL_SCRATCH surfaces.
Lorsqu’un contexte d’appareil est en suspens sur une surface, l’application peut ne pas appeler ces méthodes :
IDirect3DCubeTexture9 IDirect3DCubeTexture9 ::LockRect
IDirect3DDevice9 IDirect3DDevice9 ::ColorFill
IDirect3DDevice9 ::StretchRect
IDirect3DDevice9 ::UpdateSurface
IDirect3DDevice9 ::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9 ::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9 ::P resent *
IDirect3DTexture9 IDirect3DTexture9 ::LockRect
 
  • (sur une chaîne d’échange qui contient la surface)

IDirect3DSurface9 ::GetDC provoque un verrou implicite ; ne conservez pas le contexte de l’appareil pour une utilisation ultérieure. Appelez IDirect3DSurface9 ::ReleaseDC pour le libérer.

Il est valide d’appeler IDirect3DSurface9 ::GetDC/IDirect3DSurface9 ::ReleaseDC aux niveaux d’un mipmap ou d’un cubemap, mais ces appels seront lents à tous les miplevels à l’exception du niveau supérieur et les opérations GDI sur ces miplevels ne seront pas accélérées.

Le hdc permet d’accéder aux fonctionnalités Win32 et GDI.

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête d3d9.h (inclure D3D9.h)
Bibliothèque D3D9.lib

Voir aussi

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9 ::ReleaseDC