| function SVGEffects(elem){ |
| var i, len = elem.data.ef ? elem.data.ef.length : 0; |
| var filId = createElementID(); |
| var fil = filtersFactory.createFilter(filId); |
| var count = 0; |
| this.filters = []; |
| var filterManager; |
| for(i=0;i<len;i+=1){ |
| filterManager = null; |
| if(elem.data.ef[i].ty === 20){ |
| count += 1; |
| filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]); |
| }else if(elem.data.ef[i].ty === 21){ |
| count += 1; |
| filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]); |
| }else if(elem.data.ef[i].ty === 22){ |
| filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]); |
| }else if(elem.data.ef[i].ty === 23){ |
| count += 1; |
| filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]); |
| }else if(elem.data.ef[i].ty === 24){ |
| count += 1; |
| filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]); |
| }else if(elem.data.ef[i].ty === 25){ |
| count += 1; |
| filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]); |
| }else if(elem.data.ef[i].ty === 28){ |
| //count += 1; |
| filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem); |
| }else if(elem.data.ef[i].ty === 29){ |
| count += 1; |
| filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]); |
| } |
| if(filterManager) { |
| this.filters.push(filterManager); |
| } |
| } |
| if(count){ |
| elem.globalData.defs.appendChild(fil); |
| elem.layerElement.setAttribute('filter','url(' + locationHref + '#'+filId+')'); |
| } |
| if (this.filters.length) { |
| elem.addRenderableComponent(this); |
| } |
| } |
| |
| SVGEffects.prototype.renderFrame = function(_isFirstFrame){ |
| var i, len = this.filters.length; |
| for(i=0;i<len;i+=1){ |
| this.filters[i].renderFrame(_isFirstFrame); |
| } |
| }; |