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 に設定されている場合、レンダー ターゲットはソフトウェア レンダリングを使用します。type が D2D1_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 設定を使用するには、dpiX と dpiY の両方を 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 |