function Layer() { this.el = document.createElement('canvas'); this.install = function() { ronin.el.appendChild(this.el); } this.update = function() { this.el.width = window.innerWidth * 2; this.el.height = window.innerHeight * 2; this.el.style.width = (window.innerWidth)+"px"; this.el.style.height = (window.innerHeight)+"px"; } this.context = function() { return this.el.getContext('2d'); } this.resize_to = function(size) { this.el.width = size.width * 2; this.el.height = size.height * 2; this.el.style.width = size.width+"px"; this.el.style.height = size.height+"px"; } this.select = function(x = 0,y = 0,width = ronin.frame.width,height = ronin.frame.width) { return this.context().getImageData(x, y, width * 2, height * 2); } this.to_base64 = function(format = 'png', quality = 0.9) { return format == 'png' ? this.el.toDataURL('image/png') : this.el.toDataURL('image/jpeg',0.9); } this.to_img = function() { var img = new Image(); img.src = this.to_base64(); return img; } this.clear = function() { this.context().clearRect(0, 0, this.el.width * 2, this.el.height * 2); } this.fill = function(color = "red") { var ctx = this.context(); ctx.beginPath(); ctx.globalCompositeOperation="source-over"; ctx.moveTo(0,0); ctx.lineTo(this.el.width,0); ctx.lineTo(this.el.width,this.el.height); ctx.lineTo(0,this.el.height); ctx.lineTo(0,0); ctx.fillStyle = color; ctx.fill(); ctx.closePath(); } }