42 lines
1000 B
JavaScript
42 lines
1000 B
JavaScript
|
const canvas = document.createElement('canvas')
|
||
|
const ctx = canvas.getContext('2d')
|
||
|
|
||
|
// Resize the canvas when window is resized
|
||
|
canvas.resizeWorkspace = function () {
|
||
|
canvas.width = window.innerWidth
|
||
|
canvas.height = window.innerHeight
|
||
|
}
|
||
|
|
||
|
window.addEventListener('resize', canvas.resizeWorkspace, false)
|
||
|
|
||
|
// Add elements to the document
|
||
|
document.body.appendChild(canvas)
|
||
|
|
||
|
canvas.resizeWorkspace()
|
||
|
|
||
|
ctx.imageSmoothingEnabled = false
|
||
|
|
||
|
class ResourceCacheFactory {
|
||
|
constructor () {
|
||
|
this.canvas = document.createElement('canvas')
|
||
|
this.ctx = this.canvas.getContext('2d')
|
||
|
this.ctx.imageSmoothingEnabled = false
|
||
|
}
|
||
|
|
||
|
prepare (width, height) {
|
||
|
if (width === this.canvas.width && height === this.canvas.height) {
|
||
|
this.ctx.clearRect(0, 0, width, height)
|
||
|
}
|
||
|
this.canvas.width = width
|
||
|
this.canvas.height = height
|
||
|
}
|
||
|
|
||
|
capture () {
|
||
|
let img = new window.Image()
|
||
|
img.src = this.canvas.toDataURL()
|
||
|
return img
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export { canvas, ctx, ResourceCacheFactory }
|