UNPKG

canvas-loop

Version:
55 lines (47 loc) 999 B
var fitter = require('canvas-fit') var loop = require('raf-loop') module.exports = function (canvas, opt) { if (!canvas) { throw new TypeError('must specify a canvas element') } opt = opt || {} var fit = fitter(canvas, opt.parent, opt.scale) var app = loop() var shape = [0, 0] resize() window.addEventListener('resize', function () { resize() app.emit('resize') }, false) Object.defineProperties(app, { scale: { get: function () { return fit.scale }, set: function (s) { fit.scale = s } }, shape: { get: function () { return shape } }, parent: { get: function () { return fit.parent }, set: function (p) { fit.parent = p } } }) return app function resize () { fit() var deviceWidth = canvas.width var deviceHeight = canvas.height shape[0] = deviceWidth / fit.scale shape[1] = deviceHeight / fit.scale } }