| 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); |
| } |
| }; |