次の方法で共有


ID2D1Factory::CreateDCRenderTarget メソッド (d2d1.h)

Windows グラフィックス デバイス インターフェイス (GDI) デバイス コンテキストに描画するレンダー ターゲットを作成します。

構文

HRESULT CreateDCRenderTarget(
  [in]  const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
  [out] ID2D1DCRenderTarget                 **dcRenderTarget
);

パラメーター

[in] renderTargetProperties

型: const D2D1_RENDER_TARGET_PROPERTIES*

レンダリング モード、ピクセル形式、リモート処理オプション、DPI 情報、ハードウェア レンダリングに必要な最小 DirectX サポート。 デバイス コンテキスト (DC) レンダー ターゲットが GDI で動作できるようにするには、DXGI 形式を DXGI_FORMAT_B8G8R8A8_UNORM に設定し、アルファ モードを D2D1_ALPHA_MODE_PREMULTIPLIED または D2D1_ALPHA_MODE_IGNOREに設定します。 ピクセル形式の詳細については、「 サポートされているピクセル形式とアルファ モード」を参照してください。

[out] dcRenderTarget

種類: ID2D1DCRenderTarget**

このメソッドが戻ると、 dcRenderTarget には、 メソッドによって作成された ID2D1DCRenderTarget へのポインターのアドレスが含まれます。

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 それ以外の場合は、 HRESULT エラー コードが返されます。

注釈

DC レンダー ターゲットを使用してレンダリングする前に、レンダー ターゲットの BindDC メソッドを使用して GDI DC に関連付ける必要があります。 これは、異なる DC ごとに、描画する領域のサイズが変更されるたびに行います。

DC レンダー ターゲットが GDI で動作できるようにするには、レンダー ターゲットの DXGI 形式を DXGI_FORMAT_B8G8R8A8_UNORM に設定し、アルファ モードを D2D1_ALPHA_MODE_PREMULTIPLIED または D2D1_ALPHA_MODE_IGNORE に設定します。

アプリケーションでは、一度レンダー ターゲットを作成し、アプリケーションの有効期間中、またはレンダー ターゲットの EndDraw メソッドが D2DERR_RECREATE_TARGET エラーを返すまで保持する必要があります。 このエラーが発生したら、レンダー ターゲット (および作成したリソース) を再作成します。

次のコードでは、DC レンダー ターゲットを作成します。

// Create a DC render target.
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(
    D2D1_RENDER_TARGET_TYPE_DEFAULT,
    D2D1::PixelFormat(
        DXGI_FORMAT_B8G8R8A8_UNORM,
        D2D1_ALPHA_MODE_IGNORE),
    0,
    0,
    D2D1_RENDER_TARGET_USAGE_NONE,
    D2D1_FEATURE_LEVEL_DEFAULT
    );

hr = m_pD2DFactory->CreateDCRenderTarget(&props, &m_pDCRT);

前のコードでは、 m_pD2DFactoryID2D1Factory へのポインターであり、 m_pDCRTID2D1DCRenderTarget へのポインターです。

次のコード例では、 DC を ID2D1DCRenderTarget にバインドします。

HRESULT DemoApp::OnRender(const PAINTSTRUCT &ps)
{

// Get the dimensions of the client drawing area.
GetClientRect(m_hwnd, &rc);

// Bind the DC to the DC render target.
hr = m_pDCRT->BindDC(ps.hdc, &rc);

要件

要件
サポートされている最小のクライアント Windows 7、Windows Vista SP2 と Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1.h
Library D2d1.lib
[DLL] D2d1.dll

こちらもご覧ください

Direct2D と GDI 相互運用の概要

ID2D1Factory

サポートされているピクセル形式とアルファ モード