D2D1_RENDER_TARGET_PROPERTIES 構造体

レンダリング オプション (ハードウェアまたはソフトウェア)、ピクセル形式、DPI 情報、リモート処理オプション、およびレンダー ターゲットの Direct3D サポート要件を格納します。

構文

struct D2D1_RENDER_TARGET_PROPERTIES {
  D2D1_RENDER_TARGET_TYPE  type;
  D2D1_PIXEL_FORMAT        pixelFormat;
  FLOAT                    dpiX;
  FLOAT                    dpiY;
  D2D1_RENDER_TARGET_USAGE usage;
  D2D1_FEATURE_LEVEL       minLevel;
};

メンバー

  • type
    D2D1_RENDER_TARGET_TYPE レンダー ターゲットがハードウェア レンダリングとソフトウェア レンダリングのどちらを強制するかを指定する値。D2D1_RENDER_TARGET_TYPE_DEFAULT の値は、レンダー ターゲットがハードウェア レンダリング (使用可能な場合) を使用するかどうかを指定します。それ以外の場合、レンダー ターゲットはソフトウェア レンダリングを使用します。WIC ビットマップ レンダー ターゲットではハードウェア レンダリングがサポートされていない点に注意してください。
  • pixelFormat
    D2D1_PIXEL_FORMAT レンダー ターゲットのピクセル形式とアルファ モード。D2D1::PixelFormat 関数を使用すると、Direct2D がユーザーのためにピクセル形式とアルファ モードを選択するように指定するピクセル形式を作成できます。各レンダー ターゲットでサポートされているピクセル形式およびアルファ モードの一覧については、「サポートされているピクセル形式とアルファ モード」を参照してください。
  • dpiX
    FLOAT レンダー ターゲットの水平方向の DPI。既定の DPI を使用するには、dpiX および dpiY を 0 に設定します。詳細については、「解説」を参照してください。
  • dpiY
    FLOAT レンダー ターゲットの垂直方向の DPI。既定の DPI を使用するには、dpiX および dpiY を 0 に設定します。詳細については、「解説」を参照してください。
  • usage
    D2D1_RENDER_TARGET_USAGE レンダー ターゲットのリモート処理方法および GDI と互換性があるかどうかを指定する値。D2D1_RENDER_TARGET_USAGE_NONE に設定すると、GDI と互換性がないレンダー ターゲットが作成され、Direct3D コマンド ストリーム リモート処理 (使用可能な場合) が使用されます。
  • minLevel
    D2D1_FEATURE_LEVEL ハードウェア レンダリングに必要な最低限の Direct3D 機能レベルを指定する値。指定された最低限のレベルが使用できないときに、type メンバーが D2D1_RENDER_TARGET_TYPE_DEFAULT に設定されている場合、レンダー ターゲットはソフトウェア レンダリングを使用します。typeD2D1_RENDER_TARGET_TYPE_HARDWARE に設定されている場合、レンダー ターゲットの作成は失敗します。D2D1_FEATURE_LEVEL_DEFAULT の値は、Direct2D がデバイスの Direct3D 機能レベルが適切かどうかを判断する必要があることを示します。このフィールドが使用されるのは、ID2D1HwndRenderTarget オブジェクトおよび ID2D1DCRenderTarget オブジェクトを作成する場合のみです。

解説

この構造体は、レンダー ターゲットを作成するときに使用します。または、この構造体と ID2D1RenderTarget::IsSupported メソッドを使用して、既存のレンダー ターゲットでサポートされているプロパティを確認します。

便宜上、Direct2D には D2D1_RENDER_TARGET_PROPERTIES 構造体を作成するための D2D1::RenderTargetProperties ヘルパー関数が用意されています。ほとんどのレンダー ターゲットで機能する D2D1_RENDER_TARGET_PROPERTIES 構造体を簡単に作成するには、パラメーターを指定せずに関数を呼び出します。これにより、フィールドが既定値に設定された D2D1_RENDER_TARGET_PROPERTIES 構造体が作成されます。詳細については、「D2D1::RenderTargetProperties」を参照してください。

すべてのレンダー ターゲットでハードウェア レンダリングがサポートされているとは限りません。一覧については、「レンダー ターゲットの概要」を参照してください。

既定の DPI 設定の使用

既定の DPI を使用するには、dpiX および dpiY を 0 に設定します。既定の DPI は、レンダー ターゲットによって異なります。

  • 互換性のあるレンダー ターゲットの場合、既定の DPI は親レンダー ターゲットの DPI です。
  • ID2D1HwndRenderTarget の場合、既定の DPI はレンダー ターゲットの ID2D1Factory から取得されたシステム DPI です。
  • 他のレンダー ターゲットの場合、既定のDPI は 96 です。

既定の DPI 設定を使用するには、dpiXdpiY の両方を 0 に設定する必要があります。一方の値のみを 0 に設定すると、レンダー ターゲットを作成しようとするときに E_INVALIDARG エラーが発生します。

次の例では、D2D1::RenderTargetProperties 関数を使用して、ほとんどのレンダー ターゲットに適した D2D1_RENDER_TARGET_PROPERTIES 構造体を作成します。完全なコードについては、「単純な Direct2D アプリケーション サンプル」を参照してください。

  RECT rc;
GetClientRect(m_hwnd, &rc);

D2D1_SIZE_U size = D2D1::SizeU(
    rc.right - rc.left,
    rc.bottom - rc.top
    );

// Create a Direct2D render target.
hr = m_pD2DFactory->CreateHwndRenderTarget(
    D2D1::RenderTargetProperties(),
    D2D1::HwndRenderTargetProperties(m_hwnd, size),
    &m_pRenderTarget
    );

要件

クライアントの最小要件

Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

参照

ID2D1RenderTarget::IsSupported

レンダー ターゲットの概要