canvas-recorder
Version:
Browserside tool to record canvas animations frame by frame.
81 lines (80 loc) • 2.55 kB
JavaScript
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;
;