Browse Source

Remove getMaxViews() from Multiview
rename multiview.attachRenderTarget() to attachCamera()
use isWebGLMultiviewRenderTarget instead of instanceof

Fernando Serrano 6 years ago
parent
commit
f1936dc7af

+ 1 - 1
src/renderers/WebGLRenderer.js

@@ -1181,7 +1181,7 @@ function WebGLRenderer( parameters ) {
 
 		if ( capabilities.multiview ) {
 
-			multiview.attachRenderTarget( camera );
+			multiview.attachCamera( camera );
 
 		}
 

+ 1 - 1
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 ) && !gl.getContextAttributes().antialias;
+	var multiview = isWebGL2 && ( !! multiviewExt ) && ! gl.getContextAttributes().antialias;
 	var maxMultiviewViews = multiview ? gl.getParameter( multiviewExt.MAX_VIEWS_OVR ) : 0;
 
 	return {

+ 5 - 9
src/renderers/webgl/WebGLMultiview.js

@@ -20,12 +20,6 @@ function WebGLMultiview( renderer, gl ) {
 	var renderTarget, currentRenderTarget;
 	var mat3, mat4, cameraArray, renderSize;
 
-	function getMaxViews() {
-
-		return capabilities.maxMultiviewViews;
-
-	}
-
 	function getCameraArray( camera ) {
 
 		if ( camera.isArrayCamera ) return camera.cameras;
@@ -130,7 +124,7 @@ function WebGLMultiview( renderer, gl ) {
 
 	}
 
-	function attachRenderTarget( camera ) {
+	function attachCamera( camera ) {
 
 		if ( ! isMultiviewCompatible( camera ) ) return;
 
@@ -194,7 +188,9 @@ function WebGLMultiview( renderer, gl ) {
 		mat3 = [];
 		cameraArray = [];
 
-		for ( var i = 0; i < getMaxViews(); i ++ ) {
+		var maxViews = capabilities.maxMultiviewViews;
+
+		for ( var i = 0; i < maxViews; i ++ ) {
 
 			mat4[ i ] = new Matrix4();
 			mat3[ i ] = new Matrix3();
@@ -204,7 +200,7 @@ function WebGLMultiview( renderer, gl ) {
 	}
 
 
-	this.attachRenderTarget = attachRenderTarget;
+	this.attachCamera = attachCamera;
 	this.detachRenderTarget = detachRenderTarget;
 	this.updateCameraProjectionMatricesUniform = updateCameraProjectionMatricesUniform;
 	this.updateCameraViewMatricesUniform = updateCameraViewMatricesUniform;

+ 1 - 2
src/renderers/webgl/WebGLProgram.js

@@ -6,7 +6,6 @@ import { WebGLUniforms } from './WebGLUniforms.js';
 import { WebGLShader } from './WebGLShader.js';
 import { ShaderChunk } from '../shaders/ShaderChunk.js';
 import { NoToneMapping, AddOperation, MixOperation, MultiplyOperation, EquirectangularRefractionMapping, CubeRefractionMapping, SphericalReflectionMapping, EquirectangularReflectionMapping, CubeUVRefractionMapping, CubeUVReflectionMapping, CubeReflectionMapping, PCFSoftShadowMap, PCFShadowMap, VSMShadowMap, ACESFilmicToneMapping, CineonToneMapping, Uncharted2ToneMapping, ReinhardToneMapping, LinearToneMapping, GammaEncoding, RGBDEncoding, RGBM16Encoding, RGBM7Encoding, RGBEEncoding, sRGBEncoding, LinearEncoding, LogLuvEncoding } from '../../constants.js';
-import { WebGLMultiviewRenderTarget } from '../WebGLMultiviewRenderTarget.js';
 
 var programIdCount = 0;
 
@@ -342,7 +341,7 @@ function WebGLProgram( renderer, extensions, code, material, shader, parameters,
 	var prefixVertex, prefixFragment;
 
 	var renderTarget = renderer.getRenderTarget();
-	var numMultiviewViews = renderTarget instanceof WebGLMultiviewRenderTarget ? renderTarget.numViews : 0;
+	var numMultiviewViews = renderTarget && renderTarget.isWebGLMultiviewRenderTarget ? renderTarget.numViews : 0;
 
 	if ( material.isRawShaderMaterial ) {