diff --git a/loadmodel_views/js/WebGL.js b/loadmodel_views/js/WebGL.js new file mode 100644 index 0000000000000000000000000000000000000000..139472f5636a68bee938f906465b629e811b582b --- /dev/null +++ b/loadmodel_views/js/WebGL.js @@ -0,0 +1,94 @@ +/** + * @author alteredq / http://alteredqualia.com/ + * @author mr.doob / http://mrdoob.com/ + */ + +var WEBGL = { + + isWebGLAvailable: function () { + + try { + + var canvas = document.createElement( 'canvas' ); + return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) ); + + } catch ( e ) { + + return false; + + } + + }, + + isWebGL2Available: function () { + + try { + + var canvas = document.createElement( 'canvas' ); + return !! ( window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ) ); + + } catch ( e ) { + + return false; + + } + + }, + + getWebGLErrorMessage: function () { + + return this.getErrorMessage( 1 ); + + }, + + getWebGL2ErrorMessage: function () { + + return this.getErrorMessage( 2 ); + + }, + + getErrorMessage: function ( version ) { + + var names = { + 1: 'WebGL', + 2: 'WebGL 2' + }; + + var contexts = { + 1: window.WebGLRenderingContext, + 2: window.WebGL2RenderingContext + }; + + var message = 'Your $0 does not seem to support $1'; + + var element = document.createElement( 'div' ); + element.id = 'webglmessage'; + element.style.fontFamily = 'monospace'; + element.style.fontSize = '13px'; + element.style.fontWeight = 'normal'; + element.style.textAlign = 'center'; + element.style.background = '#fff'; + element.style.color = '#000'; + element.style.padding = '1.5em'; + element.style.width = '400px'; + element.style.margin = '5em auto 0'; + + if ( contexts[ version ] ) { + + message = message.replace( '$0', 'graphics card' ); + + } else { + + message = message.replace( '$0', 'browser' ); + + } + + message = message.replace( '$1', names[ version ] ); + + element.innerHTML = message; + + return element; + + } + +};