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