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

類型:[in] D2D1_ANTIALIAS_MODE

反鋸齒模式,用來繪製具有子圖元界限的剪輯矩形邊緣,以及將剪輯與場景內容混合。 呼叫 PopAxisAlignedClip 方法時,就會執行混合一次,而且不適用於圖層中的每個基本類型。

傳回值

備註

clipRect是由轉譯目標上設定的目前世界轉換所轉換。 將轉換套用至傳入的 clipRect 之後,會計算 clipRect 的軸對齊周框方塊。 為了有效率,內容會裁剪到這個軸對齊周框方塊,而不是傳入的原始 clipRect

下圖顯示旋轉轉換如何套用至轉譯目標、產生的 clipRect和計算軸對齊周框方塊。

  1. 假設下圖中的矩形是對齊螢幕圖元的轉譯目標。 矩形的圖例 (轉譯目標)
  2. 將旋轉轉換套用至轉譯目標。 在下圖中,黑色矩形代表原始轉譯目標,而紅色虛線矩形代表轉換的轉譯目標。 旋轉矩形圖例 (轉換的轉譯目標)
  3. 呼叫 PushAxisAlignedClip之後,旋轉轉換會套用至 clipRect。 在下圖中,藍色矩形代表已轉換的 clipRect旋轉矩形內的小型藍色矩形圖例 (轉換的 clipRect)
  4. 會計算軸對齊周框方塊。 綠色虛線矩形代表下圖中的周框方塊。 所有內容都會裁剪到這個軸對齊周框方塊。 旋轉矩形內小型藍色矩形的綠色周框方塊圖例
注意 如果轉譯作業失敗,或未呼叫 PopAxisAlignedClip ,剪輯截斷可能會導致轉譯目標上的某些成品。 PopAxisAlignedClip 可以視為繪圖作業,其設計目的是要修正裁剪區域的框線。 如果沒有此呼叫,裁剪區域的框線可能無法反鋸齒或更正。
 
PushAxisAlignedClipPopAxisAlignedClip必須相符。 否則,會設定錯誤狀態。 若要讓轉譯目標繼續接收新的命令,您可以呼叫 Flush 來清除錯誤。

PushAxisAlignedClipPopAxisAlignedClip配對可以發生在 PushLayer 和 PopLayer 內,但不能重迭。 例如,PushAxisAlignedClip、PushLayer、PopLayerPopAxisAlignedClip的順序有效,但PushAxisAlignedClipPushLayerPopAxisAlignedClip的順序無效。

如果這個方法失敗,則不會傳回錯誤碼。 若要判斷繪圖作業是否 (,例如 PushAxisAlignedClip) 失敗,請檢查 ID2D1RenderTarget::EndDrawID2D1RenderTarget::Flush 方法傳回的結果。

規格需求

   
目標平台 Windows
標頭 d2d1.h (包含 D2d1.h)
程式庫 D2d1.lib
Dll D2d1.dll

另請參閱

ID2D1RenderTarget