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 |