Parse
File Parse offscreen.js
This runs the server-side parser and regenerates the documentation tree for this source file.
Source
/* Functions and utilities to assist with offscreen rendering */
function createOffscreenCanvas(whUnit) {
/* Provide something with a {width, height} for size. */
// var offScreenCanvas = document.createElement('canvas');
const offScreenCanvas = new OffscreenCanvas(
whUnit? whUnit.width: 400,
whUnit? whUnit.height: 300);
// offScreenCanvas.width = '800';
// offScreenCanvas.height = '600';
// var context = offScreenCanvas.getContext("2d");
// context.fillStyle = '#444'; //set fill color
// context.fillRect(10, 10, 50, 50);
return offScreenCanvas; //return canvas element
}
function copyToOnScreen(offScreenCanvas, onScreenCanvas, options={ transfer: true, clear: true }) {
if(options.transfer === true) {
const onScreenContext = onScreenCanvas.getContext('bitmaprenderer')
let offScreenBitmap = offScreenCanvas.transferToImageBitmap()
onScreenContext.transferFromImageBitmap(offScreenBitmap)
return
}
const onScreenContext = onScreenCanvas.getContext('2d', {
alpha: options.alpha !== false
})
onScreenContext.save()
if(options.clear === true) {
onScreenContext.clearRect(0, 0, onScreenCanvas.width, onScreenCanvas.height)
}
onScreenContext.globalCompositeOperation = options.compositeOperation || 'source-over'
onScreenContext.drawImage(
offScreenCanvas,
0, 0, offScreenCanvas.width, offScreenCanvas.height,
0, 0, onScreenCanvas.width, onScreenCanvas.height
)
onScreenContext.restore()
}
class StageOffscreenTools {
constructor(point) {
this.parent = point
}
create(size) {
if(size == undefined) {
size = this.parent.dimensions
}
return createOffscreenCanvas(size)
}
}
console.log('offScreen')
Polypoint.head.deferredProp('Stage',
function offscreen() {
return new StageOffscreenTools(this)
}
);
copy