void SVGFilterBuilder::clearResultsRecursive(FilterEffect* effect) { if (!effect->hasResult()) return; effect->clearResult(); for (auto& reference : effectReferences(effect)) clearResultsRecursive(reference); }
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); }
void FilterEffect::applyAll() { if (hasResult()) return; FilterContextOpenCL* context = FilterContextOpenCL::context(); if (context) { apply(); if (!context->inError()) return; clearResultsRecursive(); context->destroyContext(); } // Software code path. apply(); }