ID2D1DeviceContext::SetTarget メソッド (d2d1_1.h)
Direct2D デバイス コンテキストがレンダリングされるビットマップまたはコマンド の一覧。
構文
void SetTarget(
[in, optional] ID2D1Image *image
);
パラメーター
[in, optional] image
種類: ID2D1Image*
Direct2D デバイス コンテキストがレンダリングされるサーフェスまたはコマンドの一覧。
戻り値
なし
解説
ターゲットは、コンテキストが描画されている間を含め、いつでも変更できます。
ターゲットには、 D2D1_BITMAP_OPTIONS_TARGET フラグを使用して作成されたビットマップを指定することも、コマンド リストにすることもできます。 他の種類のイメージをターゲットとして設定することはできません。 たとえば、効果の出力をターゲットとして設定することはできません。 ターゲットが有効でない場合、コンテキストは D2DERR_INVALID_TARGET エラー状態になります。
SetTarget を使用して、複数のデバイス コンテキストからビットマップ/コマンド リストに同時にレンダリングすることはできません。 BeginDraw/EndDraw タイムスパン内のデバイス コンテキストで設定されている場合、イメージは "レンダリング対象" と見なされます。 複数のデバイス コンテキストを使用してイメージにレンダリングしようとすると、最初の後のすべての後続のデバイス コンテキストがエラー状態になります。
2 番目のデバイス コンテキストにイメージをアタッチする呼び出し元は、最初のデバイス コンテキストで 最初に EndDraw を呼び出す必要があります。
正しい呼び出し順序の例を次に示します。
pDC1->BeginDraw();
pDC1->SetTarget(pImage);
// …
pDC1->EndDraw();
pDC2->BeginDraw();
pDC2->SetTarget(pImage);
// …
pDC2->EndDraw();
正しくない呼び出し順序の例を次に示します。
pDC1->BeginDraw();
pDC2->BeginDraw();
pDC1->SetTarget(pImage);
// ...
pDC1->SetTarget(NULL);
pDC2->SetTarget(pImage); // This call is invalid, even though pImage is no longer set on pDC1.
// ...
pDC1->EndDraw(); // This EndDraw SUCCEEDs.
pDC2->EndDraw(); // This EndDraw FAILs
ビットマップを複数のレンダー ターゲットのターゲット ビットマップとして一度にバインドすることは許容されます。 これを行うアプリケーションでは、 レンダリングを Flush または EndDraw と正しく同期する必要があります。
コンテキストが描画されている間も含め、ターゲットはいつでも変更できます。
ターゲットを NULL に設定できます。この場合、描画呼び出しでは、D2DERR_WRONG_STATEを使用してデバイス コンテキストがエラー状態になります。 NULL ターゲットで SetTarget を呼び出しても、元のターゲット ビットマップはデバイス コンテキストに復元されません。
デバイス コンテキストに未処理の HDC がある場合、コンテキストは D2DERR_WRONG_STATE エラー状態になります。 ターゲットは変更されません。
ビットマップとデバイス コンテキストが同じリソース ドメインにない場合、コンテキストはエラー状態になります \ 。 ターゲットは変更されません。
ID2D1RenderTarget::GetPixelSize は、現在のターゲット ビットマップのサイズ (ビットマップバインドがない場合は 0、0) を返します。 ID2D1RenderTarget::GetSize は、レンダー ターゲットの DPI によってスケーリングされた現在のビットマップのピクセル サイズを返します。 SetTarget はレンダー ターゲットの DPI には影響しません。
ID2D1RenderTarget::GetPixelFormat は、現在のターゲット ビットマップのピクセル形式 (または、 存在しない場合は D2D1_ALPHA_MODE_UNKNOWN DXGI_FORMAT_UNKNOWN ) を返します。
ID2D1Bitmap::CopyFromRenderTarget は 、現在バインドされているターゲット ビットマップからコピーします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2 のWindows Server 2012とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | d2d1_1.h |
[DLL] | D2d1.dll |