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の形式でのみ有効です。 ALPHA を含む形式はサポートされていません。GDI の実装にはアルファ チャネルで明確に定義された動作がないためです。 形式の詳細については、「 D3DFORMAT」を参照してください。
  • 一度に返すことができるデバイス コンテキストは、サーフェスごとに 1 つだけです。
  • サーフェスが既にロックされている場合、IDirect3DSurface9::GetDC は失敗します。 サーフェスがミップマップまたはキューブマップのメンバーである場合、他の mipmap または cubemap メンバーがロックされている場合、 IDirect3DSurface9::GetDC は失敗します。
  • IDirect3DSurface9::GetDC は、ロック可能に作成されていない限り、レンダー ターゲットで失敗します (または、バック バッファーの場合は、D3DPRESENTFLAG_LOCKABLE_BACKBUFFER フラグが付きます)。
  • IDirect3DDevice9::CreateOffscreenPlainSurface で作成されていないサーフェスの場合、IDirect3DSurface9::GetDC は、動的 (D3DUSAGE_DYNAMIC) またはロック可能なレンダー ターゲットでない限り、既定のプール (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 またはキューブマップのレベルで IDirect3DSurface9::GetDC/IDirect3DSurface9::ReleaseDC を呼び出すと有効ですが、これらの呼び出しは最上位レベルを除くすべての miplevel に対して低速になり、これらの miplevels に対する GDI 操作は高速化されません。

hdc は、Win32 と GDI の機能へのアクセスを提供します。

要件

要件
対象プラットフォーム Windows
ヘッダー d3d9helper.h (D3D9.h を含む)
Library D3D9.lib

こちらもご覧ください

D3dpool

D3DPRESENT_PARAMETERS

D3DUSAGE

IDirect3DSurface9

IDirect3DSurface9::ReleaseDC