You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.6 KiB
48 lines
1.6 KiB
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%',
|
|
},
|
|
runExpressions: !config || config.runExpressions === undefined || config.runExpressions,
|
|
};
|
|
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;
|