Browse Source

WebGLRenderer: Create WebGL2 context when available.

Mr.doob 5 years ago
parent
commit
0a4a0795f2
1 changed files with 13 additions and 5 deletions
  1. 13 5
      src/renderers/WebGLRenderer.js

+ 13 - 5
src/renderers/WebGLRenderer.js

@@ -184,7 +184,7 @@ function WebGLRenderer( parameters ) {
 
 
 	// initialize
 	// initialize
 
 
-	let _gl;
+	let _gl = _context;
 
 
 	try {
 	try {
 
 
@@ -204,17 +204,25 @@ function WebGLRenderer( parameters ) {
 		_canvas.addEventListener( 'webglcontextlost', onContextLost, false );
 		_canvas.addEventListener( 'webglcontextlost', onContextLost, false );
 		_canvas.addEventListener( 'webglcontextrestored', onContextRestore, false );
 		_canvas.addEventListener( 'webglcontextrestored', onContextRestore, false );
 
 
-		_gl = _context || _canvas.getContext( 'webgl', contextAttributes ) || _canvas.getContext( 'experimental-webgl', contextAttributes );
+		if ( _gl === null ) {
+
+			const contextType = typeof WebGL2RenderingContext !== 'undefined' ? 'webgl2' : 'webgl';
+
+			console.log( contextType );
+
+			_gl = _canvas.getContext( contextType, contextAttributes );
 
 
 		if ( _gl === null ) {
 		if ( _gl === null ) {
 
 
-			if ( _canvas.getContext( 'webgl' ) !== null ) {
+				if ( _canvas.getContext( contextType ) !== null ) {
 
 
-				throw new Error( 'Error creating WebGL context with your selected attributes.' );
+					throw new Error( 'Error creating ' + contextType + ' context with your selected attributes.' );
 
 
 			} else {
 			} else {
 
 
-				throw new Error( 'Error creating WebGL context.' );
+					throw new Error( 'Error creating ' + contextType + ' context.' );
+
+				}
 
 
 			}
 			}