sdf-2d/src/graphics/graphics-library/helper/enable-context-lost-simulator.ts
2020-09-28 17:39:07 +02:00

29 lines
663 B
TypeScript

/** @internal */
let isEnabled = false;
/** @internal */
export const enableContextLostSimulator = (canvas: HTMLCanvasElement) => {
if (isEnabled) {
return;
}
isEnabled = true;
const gl = canvas.getContext('webgl2')!;
const ext = gl.getExtension('WEBGL_lose_context')!;
const simulateContextLost = () => {
ext.loseContext();
console.log('lost');
const restoreTimeout = Math.random() * 500;
setTimeout(() => {
ext.restoreContext();
console.log('restored');
}, restoreTimeout);
setTimeout(() => simulateContextLost(), restoreTimeout + Math.random() * 500);
};
setTimeout(simulateContextLost, 1000);
};