UNPKG

canvas-recorder

Version:

Browserside tool to record canvas animations frame by frame.

81 lines (80 loc) 2.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jszip_1 = __importDefault(require("jszip")); exports.JSZip = jszip_1.default; const lodash_1 = require("lodash"); const shared_1 = require("./shared"); class Recorder extends shared_1.BaseRecorder { get gl() { return this.context; } constructor() { const canvas = document.createElement("canvas"); const context = (canvas.getContext("webgl") || canvas.getContext("experimental-webgl")); super(canvas, context); } options(opts) { super.options(opts); const [r, g, b, a] = shared_1.colorToRGBA(this.settings.color); this.gl.clearColor(r, g, b, a); } clear() { this.gl.clear(this.gl.COLOR_BUFFER_BIT); } updateCanvas(canvas) { this.canvas = canvas; this.context = (canvas.getContext("webgl") || canvas.getContext("experimental-webgl")); } } exports.Recorder = Recorder; exports.recorder = new Recorder(); lodash_1.bindAll(exports.recorder, [ "getCanvas", "getContext", "options", "start", "stop", "cleanup", "reset", "draw", "setup", "bootstrap", "addFrame", "resetBundle", "downloadBundle", "getBundle", ]); const getCanvas = exports.recorder.getCanvas; exports.getCanvas = getCanvas; const getContext = exports.recorder.getContext; exports.getContext = getContext; const options = exports.recorder.options; exports.options = options; const start = exports.recorder.start; exports.start = start; const stop = exports.recorder.stop; exports.stop = stop; const cleanup = exports.recorder.cleanup; exports.cleanup = cleanup; const reset = exports.recorder.reset; exports.reset = reset; const draw = exports.recorder.draw; exports.draw = draw; const setup = exports.recorder.setup; exports.setup = setup; const bootstrap = exports.recorder.bootstrap; exports.bootstrap = bootstrap; const addFrame = exports.recorder.addFrame; exports.addFrame = addFrame; const resetBundle = exports.recorder.resetBundle; exports.resetBundle = resetBundle; const downloadBundle = exports.recorder.downloadBundle; exports.downloadBundle = downloadBundle; const getBundle = exports.recorder.getBundle; exports.getBundle = getBundle; exports.default = exports.recorder;