void inout(IHypergraph<A> const& h, IMutableHypergraph<A>* o) const { assert(stateRemap); if (trivial()) copyHypergraph(h, o); else { copyFilter(stateRemap, h, o, keep, kArcs, kStartFinal, kNoClear); } }
FILTERLIST* copyFilterList(FILTERLIST* original) { if (!original) return original; int i; FILTERLIST* copy = (FILTERLIST*)malloc(sizeof(FILTERLIST)); copy->num = original->num; for (i = 0; i < copy->num; i++) copy->filter[i] = copyFilter(original->filter[i]); return copy; }
void AdBlockTreeWidget::keyPressEvent(QKeyEvent* event) { if (event->key() == Qt::Key_C && event->modifiers() & Qt::ControlModifier) { copyFilter(); } if (event->key() == Qt::Key_Delete) { removeRule(); } TreeWidget::keyPressEvent(event); }
FILTER* interpolateBlur(FILTER* filter1, FILTER* filter2, float ratio, interpolation_t* inter) { FILTER_BLUR*f1 = (FILTER_BLUR*)filter1; FILTER_BLUR*f2 = (FILTER_BLUR*)filter2; if (!f1) f1 = noBlur; if (!f2) f2 = noBlur; if(f1->blurx == f2->blurx && f1->blury == f2->blury) return copyFilter(filter1); FILTER_BLUR*f = (FILTER_BLUR*)swf_NewFilter(FILTERTYPE_BLUR); f->blurx= interpolateScalar(f1->blurx, (f2->blurx), ratio, inter); f->blury= interpolateScalar(f1->blury, (f2->blury), ratio, inter); f->passes= interpolateScalar(f1->passes, (f2->passes), ratio, inter); return (FILTER*)f; }
FILTER* interpolateGradientGlow(FILTER* filter1,FILTER* filter2, float ratio, interpolation_t* inter) { FILTER_GRADIENTGLOW*f1 = (FILTER_GRADIENTGLOW*)filter1; FILTER_GRADIENTGLOW*f2 = (FILTER_GRADIENTGLOW*)filter2; if (!f1) f1 = noGradientGlow; if (!f2) f2 = noGradientGlow; if(f1->gradient->num == f2->gradient->num && !memcmp(&f1->gradient->ratios,&f2->gradient->ratios,f1->gradient->num * sizeof(U8)) && !memcmp(&f1->gradient->rgba,&f2->gradient->rgba,f1->gradient->num * sizeof(RGBA)) && f1->blurx == f2->blurx && f1->blury == f2->blury && f1->angle == f2->angle && f1->strength == f2->strength && f1->distance == f2->distance) return copyFilter(filter1); FILTER_GRADIENTGLOW*f = (FILTER_GRADIENTGLOW*)swf_NewFilter(FILTERTYPE_GRADIENTGLOW); memcpy(f, f1, sizeof(FILTER_GRADIENTGLOW)); f->blurx= interpolateScalar(f1->blurx, (f2->blurx), ratio, inter); f->blury= interpolateScalar(f1->blury, (f2->blury), ratio, inter); f->passes= interpolateScalar(f1->passes, (f2->passes), ratio, inter); f->angle= interpolateScalar(f1->angle, (f2->angle), ratio, inter); f->distance= interpolateScalar(f1->distance, (f2->distance), ratio, inter); f->strength= interpolateScalar(f1->strength, (f2->strength), ratio, inter); f->gradient= interpolateGradient(f1->gradient, f2->gradient, ratio, inter); if (f1 == noGradientGlow) { if (f2 != noGradientGlow) matchGradientGlowFlags(f, f2); } else if (f2 == noGradientGlow) matchGradientGlowFlags(f, f1); else if (ratio > 0.5) matchGradientGlowFlags(f, f2); else matchGradientGlowFlags(f, f1); return (FILTER*)f; }
FILTER* interpolateBevel(FILTER* filter1,FILTER* filter2, float ratio, interpolation_t* inter) { FILTER_BEVEL*f1 = (FILTER_BEVEL*)filter1; FILTER_BEVEL*f2 = (FILTER_BEVEL*)filter2; if (!f1) f1 = noBevel; if (!f2) f2 = noBevel; if(!memcmp(&f1->shadow,&f2->shadow,sizeof(RGBA)) && !memcmp(&f1->highlight,&f2->highlight,sizeof(RGBA)) && f1->blurx == f2->blurx && f1->blury == f2->blury && f1->angle == f2->angle && f1->strength == f2->strength && f1->distance == f2->distance) return copyFilter(filter1); FILTER_BEVEL*f = (FILTER_BEVEL*)swf_NewFilter(FILTERTYPE_BEVEL); memcpy(f, f1, sizeof(FILTER_BEVEL)); f->shadow = interpolateColor(f1->shadow, f2->shadow, ratio, inter); f->highlight = interpolateColor(f1->highlight, f2->highlight, ratio, inter); f->blurx= interpolateScalar(f1->blurx, (f2->blurx), ratio, inter); f->blury= interpolateScalar(f1->blury, (f2->blury), ratio, inter); f->passes= interpolateScalar(f1->passes, (f2->passes), ratio, inter); f->angle= interpolateScalar(f1->angle, (f2->angle), ratio, inter); f->distance= interpolateScalar(f1->distance, (f2->distance), ratio, inter); f->strength= interpolateScalar(f1->strength, (f2->strength), ratio, inter); if (f1 == noBevel) { if (f2 != noBevel) matchBevelFlags(f, f2); } else if (f2 == noBevel) matchBevelFlags(f, f1); else if (ratio > 0.5) matchBevelFlags(f, f2); else matchBevelFlags(f, f1); return (FILTER*)f; }
FILTER* interpolateDropshadow(FILTER* filter1,FILTER* filter2, float ratio, interpolation_t* inter) { FILTER_DROPSHADOW*f1 = (FILTER_DROPSHADOW*)filter1; FILTER_DROPSHADOW*f2 = (FILTER_DROPSHADOW*)filter2; if (!f1) f1 = noDropshadow; if (!f2) f2 = noDropshadow; if(!memcmp(&f1->color,&f2->color,sizeof(RGBA)) && f1->strength == f2->strength && f1->blurx == f2->blurx && f1->blury == f2->blury && f1->angle == f2->angle && f1->distance == f2->distance) return copyFilter(filter1); FILTER_DROPSHADOW*f = (FILTER_DROPSHADOW*)swf_NewFilter(FILTERTYPE_DROPSHADOW); memcpy(f, f1, sizeof(FILTER_DROPSHADOW)); f->color = interpolateColor(f1->color, f2->color, ratio, inter); f->blurx= interpolateScalar(f1->blurx, (f2->blurx), ratio, inter); f->blury= interpolateScalar(f1->blury, (f2->blury), ratio, inter); f->passes= interpolateScalar(f1->passes, (f2->passes), ratio, inter); f->angle= interpolateScalar(f1->angle, (f2->angle), ratio, inter); f->distance= interpolateScalar(f1->distance, (f2->distance), ratio, inter); f->strength= interpolateScalar(f1->strength, (f2->strength), ratio, inter); if (f1 == noDropshadow) { if (f2 != noDropshadow) matchDropshadowFlags(f, f2); } else if (f2 == noDropshadow) matchDropshadowFlags(f, f1); else if (ratio > 0.5) matchDropshadowFlags(f, f2); else matchDropshadowFlags(f, f1); return (FILTER*)f; }