Méthode IDirect3DSurface9 ::GetDC (d3d9helper.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 de 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 comme verrouillables (ou, dans le cas de mémoires tampons d’arrière-mémoire, 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.
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. Toutefois, ces appels seront lents vers 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 | d3d9helper.h (inclure D3D9.h) |
Bibliothèque | D3D9.lib |