From 0cd4f997a4dc2ec7347d90743e0449660d2f07c0 Mon Sep 17 00:00:00 2001 From: Fernando Serrano Date: Wed, 21 Aug 2019 19:39:05 +0200 Subject: [PATCH] Move multiview.isAvailable() to renderer.capabilities.multiview --- examples/webvr_multiview.html | 4 ++-- src/renderers/WebGLRenderer.js | 8 ++++---- src/renderers/webgl/WebGLCapabilities.js | 2 +- src/renderers/webgl/WebGLMultiview.js | 11 ++--------- 4 files changed, 9 insertions(+), 16 deletions(-) diff --git a/examples/webvr_multiview.html b/examples/webvr_multiview.html index a22859539d..e136905464 100644 --- a/examples/webvr_multiview.html +++ b/examples/webvr_multiview.html @@ -74,7 +74,7 @@ info.style.width = '100%'; info.style.textAlign = 'center'; info.innerHTML = 'three.js webvr - multiview
'; - info.innerHTML += renderer.multiview.isAvailable() ? `OVR_multiview2 is supported in your browser` : + info.innerHTML += renderer.capabilities.multiview ? `OVR_multiview2 is supported in your browser` : `OVR_multiview2 is not supported or enabled in your browser`; container.appendChild( info ); @@ -86,7 +86,7 @@ room = new THREE.LineSegments( new BoxLineGeometry( 6, 6, 6, 10, 10, 10 ), - new THREE.LineBasicMaterial( { color: renderer.multiview.isAvailable() ? 0x99ff99 : 0xff3333 } ) + new THREE.LineBasicMaterial( { color: renderer.capabilities.multiview ? 0x99ff99 : 0xff3333 } ) ); room.geometry.translate( 0, 3, 0 ); scene.add( room ); diff --git a/src/renderers/WebGLRenderer.js b/src/renderers/WebGLRenderer.js index fbb1149634..bd10ee27f5 100644 --- a/src/renderers/WebGLRenderer.js +++ b/src/renderers/WebGLRenderer.js @@ -317,7 +317,7 @@ function WebGLRenderer( parameters ) { // Multiview - var multiview = new WebGLMultiview( _this, _gl, _gl.getContextAttributes() ); + var multiview = new WebGLMultiview( _this, _gl ); this.multiview = multiview; @@ -1184,7 +1184,7 @@ function WebGLRenderer( parameters ) { } - if ( multiview.isAvailable() ) { + if ( capabilities.multiview ) { multiview.attachRenderTarget( camera ); @@ -1244,7 +1244,7 @@ function WebGLRenderer( parameters ) { state.setPolygonOffset( false ); - if ( multiview.isAvailable() ) { + if ( capabilities.multiview ) { multiview.detachRenderTarget( camera ); @@ -1392,7 +1392,7 @@ function WebGLRenderer( parameters ) { var material = overrideMaterial === undefined ? renderItem.material : overrideMaterial; var group = renderItem.group; - if ( multiview.isAvailable() ) { + if ( capabilities.multiview ) { _currentArrayCamera = camera; diff --git a/src/renderers/webgl/WebGLCapabilities.js b/src/renderers/webgl/WebGLCapabilities.js index 2ff1ec56ae..559b32f4da 100644 --- a/src/renderers/webgl/WebGLCapabilities.js +++ b/src/renderers/webgl/WebGLCapabilities.js @@ -87,7 +87,7 @@ function WebGLCapabilities( gl, extensions, parameters ) { var maxSamples = isWebGL2 ? gl.getParameter( gl.MAX_SAMPLES ) : 0; var multiviewExt = extensions.get( 'OVR_multiview2' ); - var multiview = isWebGL2 && ( !! multiviewExt ); + var multiview = isWebGL2 && ( !! multiviewExt ) && !gl.getContextAttributes().antialias; var maxMultiviewViews = multiview ? gl.getParameter( multiviewExt.MAX_VIEWS_OVR ) : 0; return { diff --git a/src/renderers/webgl/WebGLMultiview.js b/src/renderers/webgl/WebGLMultiview.js index 532a802800..4417fc8d86 100644 --- a/src/renderers/webgl/WebGLMultiview.js +++ b/src/renderers/webgl/WebGLMultiview.js @@ -8,7 +8,7 @@ import { Matrix3 } from '../../math/Matrix3.js'; import { Matrix4 } from '../../math/Matrix4.js'; import { Vector2 } from '../../math/Vector2.js'; -function WebGLMultiview( renderer, gl, contextAttributes ) { +function WebGLMultiview( renderer, gl ) { var DEFAULT_NUMVIEWS = 2; @@ -50,12 +50,6 @@ function WebGLMultiview( renderer, gl, contextAttributes ) { // - function isAvailable() { - - return capabilities.multiview && ! contextAttributes.antialias; - - } - function updateCameraProjectionMatricesUniform( camera, uniforms ) { var cameras = getCameraArray( camera ); @@ -203,7 +197,7 @@ function WebGLMultiview( renderer, gl, contextAttributes ) { } - if ( isAvailable() ) { + if ( renderer.capabilities.multiview ) { renderTarget = new WebGLMultiviewRenderTarget( 0, 0, DEFAULT_NUMVIEWS ); @@ -224,7 +218,6 @@ function WebGLMultiview( renderer, gl, contextAttributes ) { this.attachRenderTarget = attachRenderTarget; this.detachRenderTarget = detachRenderTarget; - this.isAvailable = isAvailable; this.getNumViews = getNumViews; this.updateCameraProjectionMatricesUniform = updateCameraProjectionMatricesUniform; this.updateCameraViewMatricesUniform = updateCameraViewMatricesUniform; -- GitLab