HybridRenderer.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import {
  2. extendPrototype,
  3. } from '../utils/functionExtensions';
  4. import HybridRendererBase from './HybridRendererBase';
  5. import HCompElement from '../elements/htmlElements/HCompElement';
  6. import SVGCompElement from '../elements/svgElements/SVGCompElement';
  7. function HybridRenderer(animationItem, config) {
  8. this.animationItem = animationItem;
  9. this.layers = null;
  10. this.renderedFrame = -1;
  11. this.renderConfig = {
  12. className: (config && config.className) || '',
  13. imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',
  14. hideOnTransparent: !(config && config.hideOnTransparent === false),
  15. filterSize: {
  16. width: (config && config.filterSize && config.filterSize.width) || '400%',
  17. height: (config && config.filterSize && config.filterSize.height) || '400%',
  18. x: (config && config.filterSize && config.filterSize.x) || '-100%',
  19. y: (config && config.filterSize && config.filterSize.y) || '-100%',
  20. },
  21. runExpressions: !config || config.runExpressions === undefined || config.runExpressions,
  22. };
  23. this.globalData = {
  24. _mdf: false,
  25. frameNum: -1,
  26. renderConfig: this.renderConfig,
  27. };
  28. this.pendingElements = [];
  29. this.elements = [];
  30. this.threeDElements = [];
  31. this.destroyed = false;
  32. this.camera = null;
  33. this.supports3d = true;
  34. this.rendererType = 'html';
  35. }
  36. extendPrototype([HybridRendererBase], HybridRenderer);
  37. HybridRenderer.prototype.createComp = function (data) {
  38. if (!this.supports3d) {
  39. return new SVGCompElement(data, this.globalData, this);
  40. }
  41. return new HCompElement(data, this.globalData, this);
  42. };
  43. export default HybridRenderer;