本文整理汇总了C++中StyleDifference::setNeedsPaintInvalidationObject方法的典型用法代码示例。如果您正苦于以下问题:C++ StyleDifference::setNeedsPaintInvalidationObject方法的具体用法?C++ StyleDifference::setNeedsPaintInvalidationObject怎么用?C++ StyleDifference::setNeedsPaintInvalidationObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StyleDifference
的用法示例。
在下文中一共展示了StyleDifference::setNeedsPaintInvalidationObject方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: diff
StyleDifference SVGRenderStyle::diff(const SVGRenderStyle* other) const
{
StyleDifference styleDifference;
if (diffNeedsLayoutAndPaintInvalidation(other)) {
styleDifference.setNeedsFullLayout();
styleDifference.setNeedsPaintInvalidationObject();
} else if (diffNeedsPaintInvalidation(other)) {
styleDifference.setNeedsPaintInvalidationObject();
}
return styleDifference;
}
示例2: paintText
void SVGInlineTextBoxPainter::paintText(const PaintInfo& paintInfo, const ComputedStyle& style,
const ComputedStyle& selectionStyle, const SVGTextFragment& fragment,
LayoutSVGResourceMode resourceMode, bool shouldPaintSelection)
{
int startPosition = 0;
int endPosition = 0;
if (shouldPaintSelection) {
m_svgInlineTextBox.selectionStartEnd(startPosition, endPosition);
shouldPaintSelection = m_svgInlineTextBox.mapStartEndPositionsIntoFragmentCoordinates(fragment, startPosition, endPosition);
}
// Fast path if there is no selection, just draw the whole chunk part using the regular style
TextRun textRun = m_svgInlineTextBox.constructTextRun(style, fragment);
if (!shouldPaintSelection || startPosition >= endPosition) {
paintTextWithShadows(paintInfo, style, textRun, fragment, 0, fragment.length, resourceMode);
return;
}
// Eventually draw text using regular style until the start position of the selection
bool paintSelectedTextOnly = paintInfo.phase == PaintPhaseSelection;
if (startPosition > 0 && !paintSelectedTextOnly)
paintTextWithShadows(paintInfo, style, textRun, fragment, 0, startPosition, resourceMode);
// Draw text using selection style from the start to the end position of the selection
if (style != selectionStyle) {
StyleDifference diff;
diff.setNeedsPaintInvalidationObject();
SVGResourcesCache::clientStyleChanged(&m_svgInlineTextBox.parent()->layoutObject(), diff, selectionStyle);
}
paintTextWithShadows(paintInfo, selectionStyle, textRun, fragment, startPosition, endPosition, resourceMode);
if (style != selectionStyle) {
StyleDifference diff;
diff.setNeedsPaintInvalidationObject();
SVGResourcesCache::clientStyleChanged(&m_svgInlineTextBox.parent()->layoutObject(), diff, style);
}
// Eventually draw text using regular style from the end position of the selection to the end of the current chunk part
if (endPosition < static_cast<int>(fragment.length) && !paintSelectedTextOnly)
paintTextWithShadows(paintInfo, style, textRun, fragment, endPosition, fragment.length, resourceMode);
}