blob: e8e63e00a20a2ce4a09cd437cf4308cc9813094c [file] [log] [blame]
function SVGEffects(elem){
var i, len = elem.data.ef.length;
var filId = randomString(10);
var fil = filtersFactory.createFilter(filId);
var count = 0;
this.filters = [];
var filterManager;
for(i=0;i<len;i+=1){
if(elem.data.ef[i].ty === 20){
count += 1;
filterManager = new SVGTintFilter(fil, elem.effects.effectElements[i]);
this.filters.push(filterManager);
}else if(elem.data.ef[i].ty === 21){
count += 1;
filterManager = new SVGFillFilter(fil, elem.effects.effectElements[i]);
this.filters.push(filterManager);
}else if(elem.data.ef[i].ty === 22){
filterManager = new SVGStrokeEffect(elem, elem.effects.effectElements[i]);
this.filters.push(filterManager);
}else if(elem.data.ef[i].ty === 23){
count += 1;
filterManager = new SVGTritoneFilter(fil, elem.effects.effectElements[i]);
this.filters.push(filterManager);
}else if(elem.data.ef[i].ty === 24){
count += 1;
filterManager = new SVGProLevelsFilter(fil, elem.effects.effectElements[i]);
this.filters.push(filterManager);
}else if(elem.data.ef[i].ty === 25){
count += 1;
filterManager = new SVGDropShadowEffect(fil, elem.effects.effectElements[i]);
this.filters.push(filterManager);
}
}
if(count){
elem.globalData.defs.appendChild(fil);
elem.layerElement.setAttribute('filter','url(#'+filId+')');
}
}
SVGEffects.prototype.renderFrame = function(firstFrame){
var i, len = this.filters.length;
for(i=0;i<len;i+=1){
this.filters[i].renderFrame(firstFrame);
}
};