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 周围或内部,但不能重叠。 例如, PushAxisAlignedClipPushLayerPopLayerPopAxisAlignedClip 的序列有效,但 PushAxisAlignedClipPushLayerPopAxisAlignedClipPopLayer 的序列无效。

如果此方法失败,此方法不会返回错误代码。 若要确定绘图操作 ((如 PushAxisAlignedClip) )是否失败,检查 ID2D1RenderTarget::EndDrawID2D1RenderTarget::Flush 方法返回的结果。

要求

   
目标平台 Windows
标头 d2d1.h (包括 D2d1.h)
Library D2d1.lib
DLL D2d1.dll

另请参阅

ID2D1RenderTarget