Bagikan melalui


Metode IDirect3DSurface9::GetDC (d3d9helper.h)

Mengambil konteks perangkat.

Sintaks

HRESULT GetDC(
  [out] HDC *phdc
);

Parameter

[out] phdc

Jenis: HDC*

Arahkan ke konteks perangkat untuk permukaan.

Nilai kembali

Jenis: HRESULT

Jika metode berhasil, nilai yang dikembalikan D3D_OK. D3DERR_INVALIDCALL dikembalikan jika argumen tidak valid.

Keterangan

Pembatasan berikut berlaku.

  • IDirect3DSurface9::GetDC hanya berlaku pada format berikut: D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_R8G8B8, dan D3DFMT_X8R8G8B8. Format yang berisi Alpha tidak didukung karena implementasi GDI tidak memiliki perilaku yang terdefinisi dengan baik pada saluran alfa. Untuk informasi selengkapnya tentang format, lihat D3DFORMAT.
  • Hanya satu konteks perangkat per permukaan yang dapat dikembalikan pada satu waktu.
  • IDirect3DSurface9::GetDC akan gagal jika permukaan sudah dikunci. Jika permukaan adalah anggota mipmap atau cubemap, IDirect3DSurface9::GetDC gagal jika anggota mipmap atau cubemap lainnya terkunci.
  • IDirect3DSurface9::GetDC gagal pada target render kecuali dibuat dapat dikunci (atau, dalam kasus buffer belakang, dengan bendera D3DPRESENTFLAG_LOCKABLE_BACKBUFFER).
  • Untuk permukaan yang tidak dibuat dengan IDirect3DDevice9::CreateOffscreenPlainSurface, IDirect3DSurface9::GetDC akan gagal pada permukaan kumpulan default (D3DPOOL_DEFAULT) kecuali jika mereka dinamis (D3DUSAGE_DYNAMIC) atau adalah target render yang dapat dikunci.
  • IDirect3DSurface9::GetDC akan gagal pada permukaan D3DPOOL_SCRATCH.
Ketika konteks perangkat luar biasa di permukaan, aplikasi mungkin tidak memanggil metode ini:
IDirect3DCubeTexture9 IDirect3DCubeTexture9::LockRect
IDirect3DDevice9 IDirect3DDevice9::ColorFill
IDirect3DDevice9::StretchRect
IDirect3DDevice9::UpdateSurface
IDirect3DDevice9::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9::P resent *
IDirect3DTexture9 IDirect3DTexture9::LockRect
 
  • (pada rantai pertukaran yang berisi permukaan)

IDirect3DSurface9::GetDC menyebabkan kunci implisit; jangan pertahankan konteks perangkat untuk digunakan nanti. Panggil IDirect3DSurface9::ReleaseDC untuk merilisnya.

Ini valid untuk memanggil IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC pada tingkat mipmap atau cubemap, namun, panggilan ini akan lambat untuk semua miplevel kecuali tingkat paling atas, dan operasi GDI ke miplevel ini tidak akan dipercepat.

Hdc menyediakan akses ke fungsionalitas Win32 dan GDI.

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d3d9helper.h (termasuk D3D9.h)
Pustaka D3D9.lib

Lihat juga

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC