IDXGISurface1::GetDC メソッド (dxgi.h)

Windows グラフィックス デバイス インターフェイス (GDI) を使用して Microsoft DirectX グラフィックス インフラストラクチャ (DXGI) サーフェスにレンダリングできるデバイス コンテキスト (DC) を返します。

構文

HRESULT GetDC(
        BOOL Discard,
  [out] HDC  *phdc
);

パラメーター

Discard

種類: BOOL

GDI DC で Direct3D コンテンツを保持するかどうかを指定するブール値。 TRUE は 、GDI DC で Direct3D コンテンツを保持しないようにランタイムに指示します。つまり、ランタイムは Direct3D コンテンツを破棄します。 FALSE を指定 すると、GDI DC で Direct3D コンテンツを使用できるようになります。

[out] phdc

種類: HDC*

GDI レンダリングの現在のデバイス コンテキストを表す HDC ハンドルへのポインター。

戻り値

型: HRESULT

成功した場合はS_OKを返します。それ以外の場合は、エラー コード。

注釈

この方法は、Windows Vista および Windows Server 2008 に付属する DXGI 1.0 ではサポートされていません。 DXGI 1.1 のサポートが必要です。これは、Windows 7、Windows Server 2008 R2、および Service Pack 2 (SP2) (KB 971644) と Windows Server 2008 (KB 971512) を使用した Windows Vista の更新プログラムとして利用できます。

GetDC メソッドを使用して DC を取得した後、GDI を使用して DXGI サーフェイスにレンダリングできます。
GetDC メソッドは、GDI レンダリング用のサーフェスを読み取り、DXGI と GDI テクノロジ間の操作を可能にします。

この方法を使用する場合は、次の点に注意してください。

  • サーフェスの D3D11_RESOURCE_MISC_GDI_COMPATIBLE フラグを使用するか、スワップ チェーンの DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE フラグを使用してサーフェスを作成する必要があります。そうしないと、このメソッドは失敗します。
  • 新しい Direct3D コマンドを発行する前に、デバイスを解放し 、IDXGISurface1::ReleaseDC メソッドを呼び出す必要があります。
  • 未処理の DC がこのメソッドによって既に作成されている場合、このメソッドは失敗します。
  • サーフェスまたはスワップ チェーンの形式は 、DXGI_FORMAT_B8G8R8A8_UNORM_SRGB または DXGI_FORMAT_B8G8R8A8_UNORMする必要があります。
  • GetDC では、Direct3D パイプラインの出力マージのレンダー ターゲットは、サーフェスからバインドされません。 GDI レンダリング後の Direct3D レンダリングの前に、デバイスで ID3D11DeviceContext::OMSetRenderTargets メソッドを呼び出す必要があります。
  • バッファーのサイズを変更する前に、未処理のすべての DC を解放する必要があります。
スワップ チェーンから IDXGISurface1 を取得することで、スワップ チェーンのインデックス 0 にあるバック バッファーで GetDC を呼び出すこともできます。 次のコードは、このプロセスを示しています。

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 );
      

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー dxgi.h
Library DXGI.lib

こちらもご覧ください

DXGI インターフェイス

IDXGISurface1