本文整理汇总了C++中RenderElement::animation方法的典型用法代码示例。如果您正苦于以下问题:C++ RenderElement::animation方法的具体用法?C++ RenderElement::animation怎么用?C++ RenderElement::animation使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RenderElement
的用法示例。
在下文中一共展示了RenderElement::animation方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createRenderer
void RenderTreeUpdater::createRenderer(Element& element, RenderStyle&& style)
{
auto computeInsertionPosition = [this, &element, &style] () {
#if ENABLE(CSS_REGIONS)
if (element.shouldMoveToFlowThread(style))
return RenderTreePosition::insertionPositionForFlowThread(renderTreePosition().parent().element(), element, style);
#endif
renderTreePosition().computeNextSibling(element);
return renderTreePosition();
};
if (!shouldCreateRenderer(element, renderTreePosition().parent()))
return;
#if ENABLE(CSS_REGIONS)
// Even display: none elements need to be registered in FlowThreadController.
registerElementForFlowThreadIfNeeded(element, style);
#endif
if (!element.rendererIsNeeded(style))
return;
RenderTreePosition insertionPosition = computeInsertionPosition();
RenderElement* newRenderer = element.createElementRenderer(WTFMove(style), insertionPosition).leakPtr();
if (!newRenderer)
return;
if (!insertionPosition.canInsert(*newRenderer)) {
newRenderer->destroy();
return;
}
// Make sure the RenderObject already knows it is going to be added to a RenderFlowThread before we set the style
// for the first time. Otherwise code using inRenderFlowThread() in the styleWillChange and styleDidChange will fail.
newRenderer->setFlowThreadState(insertionPosition.parent().flowThreadState());
element.setRenderer(newRenderer);
auto& initialStyle = newRenderer->style();
std::unique_ptr<RenderStyle> animatedStyle;
newRenderer->animation().updateAnimations(*newRenderer, initialStyle, animatedStyle);
if (animatedStyle)
newRenderer->setStyleInternal(WTFMove(*animatedStyle));
newRenderer->initializeStyle();
#if ENABLE(FULLSCREEN_API)
if (m_document.webkitIsFullScreen() && m_document.webkitCurrentFullScreenElement() == &element) {
newRenderer = RenderFullScreen::wrapRenderer(newRenderer, &insertionPosition.parent(), m_document);
if (!newRenderer)
return;
}
#endif
// Note: Adding newRenderer instead of renderer(). renderer() may be a child of newRenderer.
insertionPosition.insert(*newRenderer);
if (AXObjectCache* cache = m_document.axObjectCache())
cache->updateCacheAfterNodeIsAttached(&element);
}