added canvas methods
diff --git a/player/js/module_worker.js b/player/js/module_worker.js index a66f66d..ca617b4 100644 --- a/player/js/module_worker.js +++ b/player/js/module_worker.js
@@ -171,7 +171,7 @@ wrapper = document.createElement('div'); params.container = wrapper; } else { - var canvas = params.canvas; + var canvas = params.rendererSettings.canvas; var ctx = canvas.getContext('2d'); params.rendererSettings.context = ctx; } @@ -335,6 +335,10 @@ animations[payload.id].destroy(); animations[payload.id] = null; } + } else if (type === 'resize') { + if (animations[payload.id]) { + animations[payload.id].resize(); + } } }; } @@ -602,14 +606,34 @@ }, }); }, + resize: function () { + workerInstance.postMessage({ + type: 'resize', + payload: { + id: animationId, + }, + }); + }, }; animation.animInstance = animInstance; resolveAnimationData(params) .then(function (animationParams) { + var transferedObjects = []; if (animationParams.container) { animation.container = animationParams.container; delete animationParams.container; } + if (animationParams.renderer === 'canvas' && !animationParams.rendererSettings.canvas) { + var canvas = document.createElement('canvas'); + animation.container.appendChild(canvas); + canvas.width = animationParams.animationData.w; + canvas.height = animationParams.animationData.h; + canvas.style.width = '100%'; + canvas.style.height = '100%'; + var offscreen = canvas.transferControlToOffscreen(); + transferedObjects.push(offscreen); + animationParams.rendererSettings.canvas = offscreen; + } animations[animationId] = animation; workerInstance.postMessage({ type: 'load', @@ -617,7 +641,7 @@ params: animationParams, id: animationId, }, - }); + }, transferedObjects); }); return animInstance; }