Expose context lost simulator

This commit is contained in:
schmelczerandras 2020-10-27 11:08:31 +01:00
parent 32aebe9036
commit 69ad74ed73
8 changed files with 36 additions and 11 deletions

View file

@ -1,6 +1,7 @@
import { ReadonlyVec2, vec2 } from 'gl-matrix';
import { Drawable } from '../../../drawables/drawable';
import { DrawableDescriptor } from '../../../drawables/drawable-descriptor';
import { formatLog } from '../../../helper/format-log';
import { RuntimeSettings } from '../settings/runtime-settings';
import { StartupSettings } from '../settings/startup-settings';
import { Renderer } from './renderer';
@ -51,7 +52,6 @@ export class ContextAwareRenderer implements Renderer {
if (!e.message.includes('Context lost')) {
throw e;
}
console.warn(e.message);
}
}
@ -63,7 +63,6 @@ export class ContextAwareRenderer implements Renderer {
if (!e.message.includes('Context lost')) {
throw e;
}
console.warn(e.message);
}
this.setRuntimeSettings(this.runtimeOverrides);
@ -75,13 +74,12 @@ export class ContextAwareRenderer implements Renderer {
private handleContextLost(event: Event) {
this.isRendererReady = false;
event.preventDefault();
console.warn('Context lost');
console.warn(formatLog('context-aware-renderer', 'Context lost'));
}
private handleContextRestored(event: Event) {
event.preventDefault();
console.info('Context restored');
console.info(formatLog('context-aware-renderer', 'Context restored'));
this.createRenderer();
}
@ -92,7 +90,6 @@ export class ContextAwareRenderer implements Renderer {
} catch (e) {
if (e.message.includes('Context lost')) {
this.isRendererReady = false;
console.warn(e.message);
return defaultValue;
}
throw e;

View file

@ -11,4 +11,5 @@ export const defaultStartupSettings: StartupSettings = {
backgroundColor: vec4.fromValues(1, 1, 1, 1),
lightPenetrationRatio: 0.75,
enableStopwatch: false,
enableContextLostSimulator: false,
};

View file

@ -41,6 +41,13 @@ export interface StartupSettings {
*/
paletteSize: number;
/**
* Many context lost event will be simulated when enabled.
*
* Useful for testing.
*/
enableContextLostSimulator: boolean;
/**
* The default background color of the scene, can have transparency on every platform.
*/