Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt einen Gerätekontext (Device Context, DC) zurück, mit dem Sie mithilfe der Windows-Grafikgeräteschnittstelle (GDI) auf einer DXGI-Oberfläche (Microsoft DirectX Graphics Infrastructure) rendern können.
Syntax
HRESULT GetDC(
BOOL Discard,
[out] HDC *phdc
);
Parameter
Discard
Typ: BOOL
Ein boolescher Wert, der angibt, ob Direct3D-Inhalte im GDI-DC beibehalten werden sollen. TRUE weist die Runtime an, Direct3D-Inhalte nicht im GDI-DC beizubehalten. Das heißt, die Runtime verwirft den Direct3D-Inhalt. FALSE garantiert, dass Direct3D-Inhalte im GDI DC verfügbar sind.
[out] phdc
Typ: HDC*
Ein Zeiger auf ein HDC-Handle , das den aktuellen Gerätekontext für das GDI-Rendering darstellt.
Rückgabewert
Typ: HRESULT
Gibt bei erfolgreicher Ausführung S_OK zurück. andernfalls ein Fehlercode.
Hinweise
Diese Methode wird von DXGI 1.0, das in Windows Vista und Windows Server 2008 ausgeliefert wurde, nicht unterstützt. DxGI 1.1-Unterstützung ist erforderlich, die unter Windows 7, Windows Server 2008 R2 und als Update auf Windows Vista mit Service Pack 2 (SP2) (KB 971644) und Windows Server 2008 (KB 971512) verfügbar ist.
Nachdem Sie die GetDC-Methode zum Abrufen eines DC verwendet haben, können Sie mithilfe von GDI auf der DXGI-Oberfläche rendern.
Die GetDC-Methode liest die Oberfläche für das GDI-Rendering und ermöglicht den Interbetrieb zwischen DXGI- und GDI-Technologien.
Beachten Sie folgendes, wenn Sie diese Methode verwenden:
- Sie müssen die Oberfläche mithilfe des D3D11_RESOURCE_MISC_GDI_COMPATIBLE-Flags für eine Oberfläche oder mit dem flag DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE für Swapchains erstellen, da andernfalls bei dieser Methode ein Fehler auftritt.
- Sie müssen das Gerät freigeben und die IDXGISurface1::ReleaseDC-Methode aufrufen, bevor Sie neue Direct3D-Befehle ausgeben.
- Diese Methode schlägt fehl, wenn bereits ein ausstehender DC von dieser Methode erstellt wurde.
- Das Format für die Oberfläche oder Swapchain muss DXGI_FORMAT_B8G8R8A8_UNORM_SRGB oder DXGI_FORMAT_B8G8R8A8_UNORM sein.
- Auf GetDC wird das Renderziel in der Ausgabezusammenführung der Direct3D-Pipeline von der Oberfläche getrennt. Sie müssen die ID3D11DeviceContext::OMSetRenderTargets-Methode auf dem Gerät vor dem Direct3D-Rendering nach dem GDI-Rendering aufrufen.
- Vor dem Ändern der Größe von Puffern müssen Sie alle ausstehenden DCs freigeben.
IDXGISwapChain* g_pSwapChain = NULL;
IDXGISurface1* g_pSurface1 = NULL;
...
//Setup the device and the swapchain
g_pSwapChain->GetBuffer(0, __uuidof(IDXGISurface1), (void**) &g_pSurface1);
g_pSurface1->GetDC( FALSE, &g_hDC );
...
//Draw on the DC using GDI
...
//When finish drawing release the DC
g_pSurface1->ReleaseDC( NULL );
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows 7 [Desktop-Apps | UWP-Apps] |
| Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [Desktop-Apps | UWP-Apps] |
| Zielplattform | Windows |
| Kopfzeile | dxgi.h |
| Bibliothek | DXGI.lib |