Esempio n. 1
0
void SVGFilterBuilder::clearResultsRecursive(FilterEffect* effect)
{
    if (!effect->hasResult())
        return;

    effect->clearResult();

    for (auto& reference : effectReferences(effect))
        clearResultsRecursive(reference);
}
Esempio n. 2
0
void SVGFilterBuilder::clearResultsRecursive(FilterEffect* effect)
{
    if (!effect->hasResult())
        return;

    effect->clearResult();

    HashSet<FilterEffect*>& effectReferences = this->effectReferences(effect);
    HashSet<FilterEffect*>::iterator end = effectReferences.end();
    for (HashSet<FilterEffect*>::iterator it = effectReferences.begin(); it != end; ++it)
         clearResultsRecursive(*it);
}
Esempio n. 3
0
void FilterEffect::applyAll()
{
    if (hasResult())
        return;
    FilterContextOpenCL* context = FilterContextOpenCL::context();
    if (context) {
        apply();
        if (!context->inError())
            return;
        clearResultsRecursive();
        context->destroyContext();
    }
    // Software code path.
    apply();
}