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 和计算轴对齐边界框。
- 假设下图中的矩形是与屏幕像素对齐的呈现目标。
- 将旋转转换应用于呈现器目标。 在下图中,黑色矩形表示原始呈现目标,红色虚线矩形表示转换后的呈现目标。
- 调用 PushAxisAlignedClip 后,旋转转换将应用于 clipRect。 在下图中,蓝色矩形表示转换后的 clipRect。
- 计算轴对齐边界框。 绿色虚线矩形表示下图中的边界框。 所有内容都剪裁到此轴对齐的边界框。
PushAxisAlignedClip 和 PopAxisAlignedClip 对可以出现在 PushLayer 和 PopLayer 周围或内部,但不能重叠。 例如, PushAxisAlignedClip、 PushLayer、 PopLayer、 PopAxisAlignedClip 的序列有效,但 PushAxisAlignedClip、 PushLayer、 PopAxisAlignedClip、 PopLayer 的序列无效。
如果此方法失败,此方法不会返回错误代码。 若要确定绘图操作 ((如 PushAxisAlignedClip) )是否失败,检查 ID2D1RenderTarget::EndDraw 或 ID2D1RenderTarget::Flush 方法返回的结果。
要求
目标平台 | Windows |
标头 | d2d1.h (包括 D2d1.h) |
Library | D2d1.lib |
DLL | D2d1.dll |