Skip to content

Commit 63eca7a

Browse files
authored
Merge pull request #14967 from mrdoob/detector_refactor
Refactored Detector.js into WebGL.js
2 parents 042bd73 + d3f5a0b commit 63eca7a

File tree

233 files changed

+1595
-796
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

233 files changed

+1595
-796
lines changed

examples/js/Detector.js

Lines changed: 0 additions & 91 deletions
This file was deleted.

examples/js/WebGL.js

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/**
2+
* @author alteredq / http://alteredqualia.com/
3+
* @author mr.doob / http://mrdoob.com/
4+
*/
5+
6+
var WEBGL = {
7+
8+
isWebGLAvailable: function () {
9+
10+
try {
11+
12+
var canvas = document.createElement( 'canvas' );
13+
return !! ( window.WebGLRenderingContext && ( canvas.getContext( 'webgl' ) || canvas.getContext( 'experimental-webgl' ) ) );
14+
15+
} catch ( e ) {
16+
17+
return false;
18+
19+
}
20+
21+
},
22+
23+
isWebGL2Available: function () {
24+
25+
try {
26+
27+
var canvas = document.createElement( 'canvas' );
28+
return !! ( window.WebGL2RenderingContext && canvas.getContext( 'webgl2' ) );
29+
30+
} catch ( e ) {
31+
32+
return false;
33+
34+
}
35+
36+
},
37+
38+
getWebGLErrorMessage: function () {
39+
40+
return this.getErrorMessage( 1 );
41+
42+
},
43+
44+
getWebGL2ErrorMessage: function () {
45+
46+
return this.getErrorMessage( 2 );
47+
48+
},
49+
50+
getErrorMessage: function ( version ) {
51+
52+
var names = {
53+
1: 'WebGL',
54+
2: 'WebGL 2'
55+
};
56+
57+
var contexts = {
58+
1: window.WebGLRenderingContext,
59+
2: window.WebGL2RenderingContext
60+
};
61+
62+
var message = 'Your $0 does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation" style="color:#000">$1</a>';
63+
64+
var element = document.createElement( 'div' );
65+
element.id = 'webglmessage';
66+
element.style.fontFamily = 'monospace';
67+
element.style.fontSize = '13px';
68+
element.style.fontWeight = 'normal';
69+
element.style.textAlign = 'center';
70+
element.style.background = '#fff';
71+
element.style.color = '#000';
72+
element.style.padding = '1.5em';
73+
element.style.width = '400px';
74+
element.style.margin = '5em auto 0';
75+
76+
if ( contexts[ version ] ) {
77+
78+
message = message.replace( '$0', 'graphics card' );
79+
80+
} else {
81+
82+
message = message.replace( '$0', 'browser' );
83+
84+
}
85+
86+
message = message.replace( '$1', names[ version ] );
87+
88+
element.innerHTML = message;
89+
90+
return element;
91+
92+
}
93+
94+
};

examples/misc_animation_groups.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,16 @@
3535
</div>
3636

3737
<script src="../build/three.js"></script>
38-
<script src="js/Detector.js"></script>
38+
<script src="js/WebGL.js"></script>
3939
<script src="js/libs/stats.min.js"></script>
4040

4141
<script>
4242

43-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
43+
if ( WEBGL.isWebGLAvailable() === false ) {
44+
45+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
46+
47+
}
4448

4549
var stats, clock;
4650
var scene, camera, renderer, mixer;

examples/misc_animation_keys.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,16 @@
3535
</div>
3636

3737
<script src="../build/three.js"></script>
38-
<script src="js/Detector.js"></script>
38+
<script src="js/WebGL.js"></script>
3939
<script src="js/libs/stats.min.js"></script>
4040

4141
<script>
4242

43-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
43+
if ( WEBGL.isWebGLAvailable() === false ) {
44+
45+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
46+
47+
}
4448

4549
var stats, clock;
4650
var scene, camera, renderer, mixer;

examples/misc_controls_fly.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
<script src="js/postprocessing/RenderPass.js"></script>
4747
<script src="js/postprocessing/FilmPass.js"></script>
4848

49-
<script src="js/Detector.js"></script>
49+
<script src="js/WebGL.js"></script>
5050
<script src="js/libs/stats.min.js"></script>
5151

5252
</head>
@@ -59,7 +59,11 @@
5959

6060
<script>
6161

62-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
62+
if ( WEBGL.isWebGLAvailable() === false ) {
63+
64+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
65+
66+
}
6367

6468
var radius = 6371;
6569
var tilt = 0.41;

examples/misc_controls_map.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,17 @@
3838

3939
<script src="../build/three.js"></script>
4040
<script src="js/controls/MapControls.js"></script>
41-
<script src="js/Detector.js"></script>
41+
<script src="js/WebGL.js"></script>
4242

4343
<script src='js/libs/dat.gui.min.js'></script>
4444

4545
<script>
4646

47-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
47+
if ( WEBGL.isWebGLAvailable() === false ) {
48+
49+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
50+
51+
}
4852

4953
var camera, controls, scene, renderer;
5054

examples/misc_controls_orbit.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,15 @@
3838

3939
<script src="../build/three.js"></script>
4040
<script src="js/controls/OrbitControls.js"></script>
41-
<script src="js/Detector.js"></script>
41+
<script src="js/WebGL.js"></script>
4242

4343
<script>
4444

45-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
45+
if ( WEBGL.isWebGLAvailable() === false ) {
46+
47+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
48+
49+
}
4650

4751
var camera, controls, scene, renderer;
4852

examples/misc_controls_trackball.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,16 @@
4141

4242
<script src="js/controls/TrackballControls.js"></script>
4343

44-
<script src="js/Detector.js"></script>
44+
<script src="js/WebGL.js"></script>
4545
<script src="js/libs/stats.min.js"></script>
4646

4747
<script>
4848

49-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
49+
if ( WEBGL.isWebGLAvailable() === false ) {
50+
51+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
52+
53+
}
5054

5155
var camera, controls, scene, renderer, stats;
5256

examples/misc_exporter_gltf.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040

4141
<script src="../build/three.js"></script>
4242

43-
<script src="js/Detector.js"></script>
43+
<script src="js/WebGL.js"></script>
4444
<script src="js/loaders/OBJLoader.js"></script>
4545
<script src="js/exporters/GLTFExporter.js"></script>
4646

@@ -140,7 +140,11 @@
140140

141141
}
142142

143-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
143+
if ( WEBGL.isWebGLAvailable() === false ) {
144+
145+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
146+
147+
}
144148

145149
var container;
146150

examples/misc_exporter_stl.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,16 @@
3535
<script src="js/controls/OrbitControls.js"></script>
3636
<script src="js/exporters/STLExporter.js"></script>
3737

38-
<script src="js/Detector.js"></script>
38+
<script src="js/WebGL.js"></script>
3939
<script src="js/libs/dat.gui.min.js"></script>
4040

4141
<script>
4242

43-
if ( ! Detector.webgl ) Detector.addGetWebGLMessage();
43+
if ( WEBGL.isWebGLAvailable() === false ) {
44+
45+
document.body.appendChild( WEBGL.getWebGLErrorMessage() );
46+
47+
}
4448

4549
var scene, camera, renderer, exporter, mesh;
4650

0 commit comments

Comments
 (0)