本文整理汇总了C++中LayoutBox::backgroundShouldAlwaysBeClipped方法的典型用法代码示例。如果您正苦于以下问题:C++ LayoutBox::backgroundShouldAlwaysBeClipped方法的具体用法?C++ LayoutBox::backgroundShouldAlwaysBeClipped怎么用?C++ LayoutBox::backgroundShouldAlwaysBeClipped使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LayoutBox
的用法示例。
在下文中一共展示了LayoutBox::backgroundShouldAlwaysBeClipped方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: determineBackgroundBleedAvoidance
BackgroundBleedAvoidance BoxDecorationData::determineBackgroundBleedAvoidance(const LayoutBox& layoutBox)
{
if (layoutBox.isDocumentElement())
return BackgroundBleedNone;
if (!hasBackground)
return BackgroundBleedNone;
const ComputedStyle& boxStyle = layoutBox.styleRef();
const bool hasBorderRadius = boxStyle.hasBorderRadius();
if (!hasBorderDecoration || !hasBorderRadius || layoutBox.canRenderBorderImage()) {
if (layoutBox.backgroundShouldAlwaysBeClipped())
return BackgroundBleedClipOnly;
// Border radius clipping may require layer bleed avoidance if we are going to draw
// an image over something else, because we do not want the antialiasing to lead to bleeding
if (boxStyle.hasBackgroundImage() && hasBorderRadius) {
// But if the top layer is opaque for the purposes of background painting, we do not
// need the bleed avoidance because we will not paint anything behind the top layer.
// But only if we need to draw something underneath.
const FillLayer& fillLayer = layoutBox.style()->backgroundLayers();
if ((backgroundColor.alpha() || fillLayer.next()) && !BoxPainter::isFillLayerOpaque(fillLayer, layoutBox))
return BackgroundBleedClipLayer;
}
return BackgroundBleedNone;
}
if (borderObscuresBackgroundEdge(boxStyle))
return BackgroundBleedShrinkBackground;
return BackgroundBleedClipLayer;
}
示例2: determineBackgroundBleedAvoidance
BackgroundBleedAvoidance BoxDecorationData::determineBackgroundBleedAvoidance(const LayoutBox& layoutBox)
{
if (layoutBox.isDocumentElement())
return BackgroundBleedNone;
if (!hasBackground)
return BackgroundBleedNone;
if (!hasBorder || !layoutBox.style()->hasBorderRadius() || layoutBox.canRenderBorderImage()) {
if (layoutBox.backgroundShouldAlwaysBeClipped())
return BackgroundBleedClipOnly;
return BackgroundBleedNone;
}
if (borderObscuresBackgroundEdge(*layoutBox.style()))
return BackgroundBleedShrinkBackground;
if (!hasAppearance && layoutBox.style()->borderObscuresBackground() && layoutBox.backgroundHasOpaqueTopLayer())
return BackgroundBleedBackgroundOverBorder;
return BackgroundBleedClipLayer;
}