IDirect3DSurface9::GetDC 메서드(d3d9helper.h)

디바이스 컨텍스트를 검색합니다.

구문

HRESULT GetDC(
  [out] HDC *phdc
);

매개 변수

[out] phdc

형식: HDC*

표면의 디바이스 컨텍스트에 대한 포인터입니다.

반환 값

형식: HRESULT

메서드가 성공하면 반환 값이 D3D_OK. 인수가 잘못된 경우 D3DERR_INVALIDCALL 반환됩니다.

설명

다음 제한이 적용됩니다.

  • IDirect3DSurface9::GetDC 는 D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_R8G8B8 및 D3DFMT_X8R8G8B8 형식에만 유효합니다. 알파를 포함하는 형식은 GDI 구현에 알파 채널에서 잘 정의된 동작이 없으므로 지원되지 않습니다. 형식에 대한 자세한 내용은 D3DFORMAT 참조하세요.
  • 표면당 하나의 디바이스 컨텍스트만 한 번에 반환할 수 있습니다.
  • 표면이 이미 잠겨 있으면 IDirect3DSurface9::GetDC가 실패합니다. 표면이 mipmap 또는 큐브맵의 멤버인 경우 다른 mipmap 또는 cubemap 멤버가 잠겨 있으면 IDirect3DSurface9::GetDC 가 실패합니다.
  • IDirect3DSurface9::GetDC 는 잠금 가능(또는 백 버퍼의 경우 D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 플래그 포함)을 만들지 않는 한 렌더링 대상에서 실패합니다.
  • IDirect3DDevice9::CreateOffscreenPlainSurface로 생성되지 않은 표면의 경우 동적(D3DUSAGE_DYNAMIC) 또는 잠금 가능한 렌더링 대상이 아니면 IDirect3DSurface9::GetDC가 기본 풀(D3DPOOL_DEFAULT) 화면에서 실패합니다.
  • IDirect3DSurface9::GetDC 는 D3DPOOL_SCRATCH 표면에서 실패합니다.
디바이스 컨텍스트가 표면에서 미해결 상태이면 애플리케이션에서 다음 메서드를 호출하지 않을 수 있습니다.
IDirect3DCubeTexture9 IDirect3DCubeTexture9::LockRect
IDirect3DDevice9 IDirect3DDevice9::ColorFill
IDirect3DDevice9::StretchRect
IDirect3DDevice9::UpdateSurface
IDirect3DDevice9::UpdateTexture
IDirect3DSurface9 IDirect3DSurface9::LockRect
IDirect3DSwapChain9 IDirect3DSwapChain9::P resent *
IDirect3DTexture9 IDirect3DTexture9::LockRect
 
  • (표면이 포함된 스왑 체인에서)

IDirect3DSurface9::GetDC 는 암시적 잠금을 발생합니다. 는 나중에 사용할 수 있는 디바이스 컨텍스트를 유지하지 않습니다. IDirect3DSurface9::ReleaseDC를 호출하여 릴리스합니다.

Mipmap 또는 cubemap 수준에서 IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC 를 호출하는 것이 유효합니다. 그러나 이러한 호출은 최상위 수준을 제외한 모든 미플벨에서 느려지고 이러한 미플벨에 대한 GDI 작업은 가속화되지 않습니다.

hdc는 Win32 및 GDI 기능에 대한 액세스를 제공합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d9helper.h(D3D9.h 포함)
라이브러리 D3D9.lib

추가 정보

D3DPOOL

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC