本文整理汇总了C++中SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute方法的具体用法?C++ SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute怎么用?C++ SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SVGFilterPrimitiveStandardAttributes
的用法示例。
在下文中一共展示了SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: primitiveAttributeChanged
void RenderSVGResourceFilter::primitiveAttributeChanged(RenderObject* object, const QualifiedName& attribute)
{
HashMap<RenderObject*, FilterData*>::iterator it = m_filter.begin();
HashMap<RenderObject*, FilterData*>::iterator end = m_filter.end();
SVGFilterPrimitiveStandardAttributes* primitve = static_cast<SVGFilterPrimitiveStandardAttributes*>(object->node());
for (; it != end; ++it) {
FilterData* filterData = it->second;
if (!filterData->builded)
continue;
SVGFilterBuilder* builder = filterData->builder.get();
FilterEffect* effect = builder->effectByRenderer(object);
if (!effect)
continue;
// Since all effects shares the same attribute value, all
// or none of them will be changed.
if (!primitve->setFilterEffectAttribute(effect, attribute))
return;
builder->clearResultsRecursive(effect);
// Repaint the image on the screen.
markClientForInvalidation(it->first, RepaintInvalidation);
}
}
示例2: primitiveAttributeChanged
void RenderSVGResourceFilter::primitiveAttributeChanged(RenderObject* object, const QualifiedName& attribute)
{
SVGFilterPrimitiveStandardAttributes* primitve = static_cast<SVGFilterPrimitiveStandardAttributes*>(object->node());
for (const auto& objectFilterDataPair : m_filter) {
const auto& filterData = objectFilterDataPair.value;
if (filterData->state != FilterData::Built)
continue;
SVGFilterBuilder* builder = filterData->builder.get();
FilterEffect* effect = builder->effectByRenderer(object);
if (!effect)
continue;
// Since all effects shares the same attribute value, all
// or none of them will be changed.
if (!primitve->setFilterEffectAttribute(effect, attribute))
return;
builder->clearResultsRecursive(effect);
// Repaint the image on the screen.
markClientForInvalidation(*objectFilterDataPair.key, RepaintInvalidation);
}
markAllClientLayersForInvalidation();
}
示例3: primitiveAttributeChanged
void LayoutSVGResourceFilter::primitiveAttributeChanged(LayoutObject* object, const QualifiedName& attribute)
{
SVGFilterPrimitiveStandardAttributes* primitive = static_cast<SVGFilterPrimitiveStandardAttributes*>(object->node());
for (auto& filter : m_filter) {
FilterData* filterData = filter.value.get();
if (filterData->m_state != FilterData::ReadyToPaint)
continue;
SVGFilterGraphNodeMap* nodeMap = filterData->nodeMap.get();
FilterEffect* effect = nodeMap->effectByRenderer(object);
if (!effect)
continue;
// Since all effects shares the same attribute value, all
// or none of them will be changed.
if (!primitive->setFilterEffectAttribute(effect, attribute))
return;
nodeMap->invalidateDependentEffects(effect);
// Issue paint invalidations for the image on the screen.
markClientForInvalidation(filter.key, PaintInvalidation);
}
markAllResourceClientsForInvalidation();
}