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

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

要求

   
最低受支持的客户端 适用于 Windows Vista 的 Windows 7、带 SP2 和平台更新的 Windows Vista [桌面应用|UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和平台更新的 Windows Server 2008 [桌面应用|UWP 应用]
目标平台 Windows
标头 d2d1.h
Library D2d1.lib
DLL D2d1.dll

另请参阅

ID2D1RenderTarget