|
@@ -53,7 +53,8 @@ function WebGLRenderer( parameters ) {
|
|
_stencil = parameters.stencil !== undefined ? parameters.stencil : true,
|
|
_stencil = parameters.stencil !== undefined ? parameters.stencil : true,
|
|
_antialias = parameters.antialias !== undefined ? parameters.antialias : false,
|
|
_antialias = parameters.antialias !== undefined ? parameters.antialias : false,
|
|
_premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true,
|
|
_premultipliedAlpha = parameters.premultipliedAlpha !== undefined ? parameters.premultipliedAlpha : true,
|
|
- _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false;
|
|
|
|
|
|
+ _preserveDrawingBuffer = parameters.preserveDrawingBuffer !== undefined ? parameters.preserveDrawingBuffer : false,
|
|
|
|
+ _powerPreference = parameters.powerPreference !== undefined ? parameters.powerPreference : 'default';
|
|
|
|
|
|
var lightsArray = [];
|
|
var lightsArray = [];
|
|
var shadowsArray = [];
|
|
var shadowsArray = [];
|
|
@@ -199,9 +200,15 @@ function WebGLRenderer( parameters ) {
|
|
stencil: _stencil,
|
|
stencil: _stencil,
|
|
antialias: _antialias,
|
|
antialias: _antialias,
|
|
premultipliedAlpha: _premultipliedAlpha,
|
|
premultipliedAlpha: _premultipliedAlpha,
|
|
- preserveDrawingBuffer: _preserveDrawingBuffer
|
|
|
|
|
|
+ preserveDrawingBuffer: _preserveDrawingBuffer,
|
|
|
|
+ powerPreference: _powerPreference
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ // event listeners must be registered before WebGL context is created, see #12753
|
|
|
|
+
|
|
|
|
+ _canvas.addEventListener( 'webglcontextlost', onContextLost, false );
|
|
|
|
+ _canvas.addEventListener( 'webglcontextrestored', onContextRestore, false );
|
|
|
|
+
|
|
_gl = _context || _canvas.getContext( 'webgl', contextAttributes ) || _canvas.getContext( 'experimental-webgl', contextAttributes );
|
|
_gl = _context || _canvas.getContext( 'webgl', contextAttributes ) || _canvas.getContext( 'experimental-webgl', contextAttributes );
|
|
|
|
|
|
if ( _gl === null ) {
|
|
if ( _gl === null ) {
|
|
@@ -230,9 +237,6 @@ function WebGLRenderer( parameters ) {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- _canvas.addEventListener( 'webglcontextlost', onContextLost, false );
|
|
|
|
- _canvas.addEventListener( 'webglcontextrestored', onContextRestore, false );
|
|
|
|
-
|
|
|
|
} catch ( error ) {
|
|
} catch ( error ) {
|
|
|
|
|
|
console.error( 'THREE.WebGLRenderer: ' + error );
|
|
console.error( 'THREE.WebGLRenderer: ' + error );
|