次の方法で共有


ID2D1RenderTarget::P ushAxisAlignedClip(constD2D1_RECT_F*,D2D1_ANTIALIAS_MODE) メソッド (d2d1.h)

後続のすべての描画操作をクリップする四角形を指定します。

構文

void PushAxisAlignedClip(
  const D2D1_RECT_F   *clipRect,
  D2D1_ANTIALIAS_MODE antialiasMode
);

パラメーター

clipRect

型: [in] const D2D1_RECT_F*

クリッピング領域のサイズと位置 (デバイスに依存しないピクセル単位)。

antialiasMode

種類: [入力] D2D1_ANTIALIAS_MODE

サブピクセル境界を持つクリップ レクツのエッジを描画し、クリップをシーン コンテンツとブレンドするために使用されるアンチエイリアシング モード。 ブレンドは 、PopAxisAlignedClip メソッドが呼び出されたときに 1 回実行され、レイヤー内の各プリミティブには適用されません。

戻り値

なし

解説

clipRect は、レンダー ターゲットに設定されている現在のワールド変換によって変換されます。 渡された clipRect に変換が適用されると、 clipRect の軸揃え境界ボックスが計算されます。 効率を高めるために、コンテンツは、渡された元の clipRect ではなく、この軸揃え境界ボックスにクリップされます。

次の図は、レンダー ターゲットに回転変換を適用する方法、結果として得られる clipRect、および計算された軸揃え境界ボックスを示しています。

  1. 次の図の四角形が、画面のピクセルに揃えられたレンダー ターゲットであるとします。 四角形の図 (レンダー ターゲット)
  2. レンダー ターゲットに回転変換を適用します。 次の図では、黒い四角形は元のレンダー ターゲットを表し、赤い破線の四角形は変換されたレンダー ターゲットを表しています。 回転した四角形の図 (変換されたレンダー ターゲット)
  3. PushAxisAlignedClip を呼び出すと、回転変換が clipRect に適用されます。 次の図では、青い四角形は変換された clipRect を表しています。 回転した四角形内の小さな青い四角形 (変換された clipRect) の図
  4. 軸揃え境界ボックスが計算されます。 緑色の破線の四角形は、次の図の境界ボックスを表します。 すべてのコンテンツは、この軸揃え境界ボックスにクリップされます。 回転した四角形内の小さな青い四角形の周囲の緑の境界ボックスの図
メモ レンダリング操作が失敗した場合、または PopAxisAlignedClip が呼び出されない場合は、クリップ の再読み込みによってレンダー ターゲットに一部のアーティファクトが発生する可能性があります。 PopAxisAlignedClip は、クリッピング領域の境界線を修正するように設計された描画操作と見なすことができます。 この呼び出しがないと、クリップされた領域の境界線がアンチエイリアシングされないか、修正されない可能性があります。
 
PushAxisAlignedClipPopAxisAlignedClip は一致する必要があります。 それ以外の場合は、エラー状態が設定されます。 レンダー ターゲットが引き続き新しいコマンドを受け取る場合は、 Flush を呼び出してエラーをクリアできます。

PushAxisAlignedClipPopAxisAlignedClip のペアは、PushLayer と PopLayer の周囲または内部で発生する可能性がありますが、重複することはできません。 たとえば、PushAxisAlignedClipPushLayer、PopLayerPopAxisAlignedClip のシーケンスは有効ですが、PushAxisAlignedClipPushLayerPopAxisAlignedClipPopLayer のシーケンスは無効です。

失敗した場合、このメソッドはエラー コードを返しません。 描画操作 (PushAxisAlignedClip など) が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドによって返される結果チェックします。

必要条件

   
対象プラットフォーム Windows
ヘッダー d2d1.h (D2d1.h を含む)
Library D2d1.lib
[DLL] D2d1.dll

関連項目

ID2D1RenderTarget