| import { |
| extendPrototype, |
| } from '../utils/functionExtensions'; |
| import HybridRendererBase from './HybridRendererBase'; |
| import HCompElement from '../elements/htmlElements/HCompElement'; |
| import SVGCompElement from '../elements/svgElements/SVGCompElement'; |
| |
| function HybridRenderer(animationItem, config) { |
| this.animationItem = animationItem; |
| this.layers = null; |
| this.renderedFrame = -1; |
| this.renderConfig = { |
| className: (config && config.className) || '', |
| imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice', |
| hideOnTransparent: !(config && config.hideOnTransparent === false), |
| filterSize: { |
| width: (config && config.filterSize && config.filterSize.width) || '400%', |
| height: (config && config.filterSize && config.filterSize.height) || '400%', |
| x: (config && config.filterSize && config.filterSize.x) || '-100%', |
| y: (config && config.filterSize && config.filterSize.y) || '-100%', |
| }, |
| }; |
| this.globalData = { |
| _mdf: false, |
| frameNum: -1, |
| renderConfig: this.renderConfig, |
| }; |
| this.pendingElements = []; |
| this.elements = []; |
| this.threeDElements = []; |
| this.destroyed = false; |
| this.camera = null; |
| this.supports3d = true; |
| this.rendererType = 'html'; |
| } |
| |
| extendPrototype([HybridRendererBase], HybridRenderer); |
| |
| HybridRenderer.prototype.createComp = function (data) { |
| if (!this.supports3d) { |
| return new SVGCompElement(data, this.globalData, this); |
| } |
| return new HCompElement(data, this.globalData, this); |
| }; |
| |
| export default HybridRenderer; |