function CanvasRender(canvasElement, options) { this.options = options this.context = canvasElement.getContext('2d') var devicePixelRatio = window.devicePixelRatio || 1 var backingStoreRatio = this.context.webkitBackingStorePixelRatio || this.context.mozBackingStorePixelRatio || this.context.msBackingStorePixelRatio || this.context.oBackingStorePixelRatio || this.context.backingStorePixelRatio || 1 this.frontBackRatio = devicePixelRatio / backingStoreRatio if (options.autoScaleForRetina && devicePixelRatio !== backingStoreRatio) { var oldWidth = canvasElement.width var oldHeight = canvasElement.height canvasElement.width = oldWidth * this.frontBackRatio canvasElement.height = oldHeight * this.frontBackRatio canvasElement.style.width = oldWidth + 'px' canvasElement.style.height = oldHeight + 'px' this.context.scale(this.frontBackRatio, this.frontBackRatio) } } CanvasRender.prototype.draw = function (image) { this.context.drawImage(image, 0, 0) } CanvasRender.prototype.clear = function () { this.context.clearRect(0, 0, this.context.canvas.width, this.context.canvas.height) } // Check for Non CommonJS world if (typeof module !== 'undefined') { module.exports = { CanvasRender: CanvasRender } }