IDXGISurface1::Metode GetDC (dxgi.h)
Mengembalikan konteks perangkat (DC) yang memungkinkan Anda merender ke permukaan Microsoft DirectX Graphics Infrastructure (DXGI) menggunakan Windows Graphics Device Interface (GDI).
Sintaks
HRESULT GetDC(
BOOL Discard,
[out] HDC *phdc
);
Parameter
Discard
Jenis: BOOL
Nilai Boolean yang menentukan apakah akan mempertahankan konten Direct3D di GDI DC. TRUE mengarahkan runtime untuk tidak mempertahankan konten Direct3D di GDI DC; artinya, runtime membuang konten Direct3D. FALSE menjamin bahwa konten Direct3D tersedia di GDI DC.
[out] phdc
Jenis: HDC*
Penunjuk ke handel HDC yang mewakili konteks perangkat saat ini untuk penyajian GDI.
Mengembalikan nilai
Jenis: HRESULT
Mengembalikan S_OK jika berhasil; jika tidak, kode kesalahan.
Keterangan
Metode ini tidak didukung oleh DXGI 1.0, yang dikirim di Windows Vista dan Windows Server 2008. Dukungan DXGI 1.1 diperlukan, yang tersedia pada Windows 7, Windows Server 2008 R2, dan sebagai pembaruan untuk Windows Vista dengan Paket Layanan 2 (SP2) (KB 971644) dan Windows Server 2008 (KB 971512).
Setelah Anda menggunakan metode GetDC untuk mengambil DC, Anda dapat merender ke permukaan DXGI dengan menggunakan GDI.
Metode GetDC membaca permukaan untuk penyajian GDI dan memungkinkan inter-operasi antara teknologi DXGI dan GDI.
Ingatlah hal-hal berikut saat menggunakan metode ini:
- Anda harus membuat permukaan dengan menggunakan bendera D3D11_RESOURCE_MISC_GDI_COMPATIBLE untuk permukaan atau dengan menggunakan bendera DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE untuk rantai pertukaran, jika tidak, metode ini gagal.
- Anda harus merilis perangkat dan memanggil metode IDXGISurface1::ReleaseDC sebelum Anda mengeluarkan perintah Direct3D baru.
- Metode ini gagal jika DC yang luar biasa telah dibuat oleh metode ini.
- Format untuk permukaan atau rantai pertukaran harus DXGI_FORMAT_B8G8R8A8_UNORM_SRGB atau DXGI_FORMAT_B8G8R8A8_UNORM.
- Pada GetDC, target render dalam penggabungan output alur Direct3D tidak terikat dari permukaan. Anda harus memanggil metode ID3D11DeviceContext::OMSetRenderTargets pada perangkat sebelum penyajian Direct3D setelah rendering GDI.
- Sebelum mengubah ukuran buffer, Anda harus merilis semua DC yang luar biasa.
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 );
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows Server 2008 R2 [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | dxgi.h |
Pustaka | DXGI.lib |