UNPKG

bouncehouse

Version:

A toolbox for building WebGl experiences

2 lines (1 loc) 1.25 kB
var bouncehouse=function(t){"use strict";return t.Render2D=class{constructor(t,i){this.options=i,this.canvas=t,this.time=0,this.context=this.canvas.getContext("2d"),this.width=i.width*devicePixelRatio,this.height=i.height*devicePixelRatio,this.mouseX,this.mouseY,this.options.trackMouse&&this.trackMousePos(),this.init()}init(){this.canvas.width=this.width,this.canvas.height=this.height,this.canvas.style.setProperty("width",`${this.options.width}px`),this.canvas.style.setProperty("height",`${this.options.height}px`),requestAnimationFrame(this.loop.bind(this))}loop(t){t/=1e3,this.time=t,this.draw(this.context,this.time,this.canvas),requestAnimationFrame(this.loop.bind(this))}draw(t,i,e){}trackMousePos(){this.canvas.addEventListener("mousemove",(t=>{this.mouseX=t.layerX*devicePixelRatio,this.mouseY=t.layerY*devicePixelRatio}))}addGradient(t,i){const e=this.context.createLinearGradient(i.startX,i.startY,i.endX,i.endY);t.forEach((t=>{e.addColorStop(t[0],t[1])})),this.context.fillStyle=e,this.context.fillRect(i.startX,i.startY,i.height,i.width)}addArc(t,i,e,s,h=0,o=2*Math.PI,a=!1){this.context.fillStyle=s,this.context.beginPath(),this.context.arc(t,i,e,h,o,a),this.context.fill()}},Object.defineProperty(t,"__esModule",{value:!0}),t}({});