add error message if webgl is not supported
This commit is contained in:
parent
8cf2b9b523
commit
85c6f18c00
|
@ -89,8 +89,8 @@ export default class MarkdownParser {
|
|||
// beginning of line
|
||||
const paraLineStart = iter;
|
||||
if (indent && this.getIndent(text, paraLineStart) <= indent) {
|
||||
//smaller indent occured
|
||||
|
||||
// smaller indent occured
|
||||
|
||||
}
|
||||
iter = this.skipSpaces(text, iter);
|
||||
if (stoppingCondition(text, iter)) {
|
||||
|
|
|
@ -316,3 +316,16 @@ export function createNameRegExp(name: string) {
|
|||
if (!name) return null;
|
||||
return new RegExp(`(^|\\s+)(@${escapeRegExp(name)})(\\s+|$)`, 'g');
|
||||
}
|
||||
|
||||
/*
|
||||
* check if webGL2 is available
|
||||
* @return boolean true if available
|
||||
*/
|
||||
export function isWebGL2Available() {
|
||||
try {
|
||||
const canvas = document.createElement('canvas');
|
||||
return !!(window.WebGL2RenderingContext && canvas.getContext('webgl2'));
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,15 +6,22 @@
|
|||
* @flow
|
||||
*/
|
||||
|
||||
import Renderer2D from './Renderer2D';
|
||||
import { t } from 'ttag';
|
||||
|
||||
let renderer = {
|
||||
import Renderer2D from './Renderer2D';
|
||||
import { sweetAlert } from '../actions';
|
||||
import { isWebGL2Available } from '../core/utils';
|
||||
|
||||
const dummyRenderer = {
|
||||
is3D: null,
|
||||
render: () => null,
|
||||
destructor: () => null,
|
||||
renderPixel: () => null,
|
||||
updateCanvasData: () => null,
|
||||
};
|
||||
|
||||
let renderer = dummyRenderer;
|
||||
|
||||
function animationLoop() {
|
||||
renderer.render();
|
||||
window.requestAnimationFrame(animationLoop);
|
||||
|
@ -24,10 +31,20 @@ animationLoop();
|
|||
export async function initRenderer(store, is3D: boolean) {
|
||||
renderer.destructor();
|
||||
if (is3D) {
|
||||
/* eslint-disable-next-line max-len */
|
||||
const module = await import(/* webpackChunkName: "voxel" */ '../ui/Renderer3D');
|
||||
const Renderer3D = module.default;
|
||||
renderer = new Renderer3D(store);
|
||||
if (!isWebGL2Available()) {
|
||||
store.dispatch(sweetAlert(
|
||||
t`Canvas Error`,
|
||||
t`Can't render 3D canvas, do you have WebGL2 disabled?`,
|
||||
'error',
|
||||
'OK',
|
||||
));
|
||||
renderer = dummyRenderer;
|
||||
} else {
|
||||
/* eslint-disable-next-line max-len */
|
||||
const module = await import(/* webpackChunkName: "voxel" */ '../ui/Renderer3D');
|
||||
const Renderer3D = module.default;
|
||||
renderer = new Renderer3D(store);
|
||||
}
|
||||
} else {
|
||||
renderer = new Renderer2D(store);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user