Преглед на файлове

Merge pull request #14438 from mrdoob/revert-14393-dev2

Revert "AudioListener: Use linearRampToValueAtTime()"
Mr.doob преди 7 години
родител
ревизия
b293519bfb
променени са 3 файла, в които са добавени 11 реда и са изтрити 39 реда
  1. 0 1
      src/audio/Audio.js
  2. 9 19
      src/audio/AudioListener.js
  3. 2 19
      src/audio/PositionalAudio.js

+ 0 - 1
src/audio/Audio.js

@@ -11,7 +11,6 @@ function Audio( listener ) {
 
 
 	this.type = 'Audio';
 	this.type = 'Audio';
 
 
-	this.listener = listener;
 	this.context = listener.context;
 	this.context = listener.context;
 
 
 	this.gain = this.context.createGain();
 	this.gain = this.context.createGain();

+ 9 - 19
src/audio/AudioListener.js

@@ -4,7 +4,6 @@
 
 
 import { Vector3 } from '../math/Vector3.js';
 import { Vector3 } from '../math/Vector3.js';
 import { Quaternion } from '../math/Quaternion.js';
 import { Quaternion } from '../math/Quaternion.js';
-import { Clock } from '../core/Clock.js';
 import { Object3D } from '../core/Object3D.js';
 import { Object3D } from '../core/Object3D.js';
 import { AudioContext } from './AudioContext.js';
 import { AudioContext } from './AudioContext.js';
 
 
@@ -21,8 +20,6 @@ function AudioListener() {
 
 
 	this.filter = null;
 	this.filter = null;
 
 
-	this.timeDelta = 0;
-
 }
 }
 
 
 AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), {
 AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), {
@@ -98,7 +95,6 @@ AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), {
 		var scale = new Vector3();
 		var scale = new Vector3();
 
 
 		var orientation = new Vector3();
 		var orientation = new Vector3();
-		var clock = new Clock();
 
 
 		return function updateMatrixWorld( force ) {
 		return function updateMatrixWorld( force ) {
 
 
@@ -107,27 +103,21 @@ AudioListener.prototype = Object.assign( Object.create( Object3D.prototype ), {
 			var listener = this.context.listener;
 			var listener = this.context.listener;
 			var up = this.up;
 			var up = this.up;
 
 
-			this.timeDelta = clock.getDelta();
-
 			this.matrixWorld.decompose( position, quaternion, scale );
 			this.matrixWorld.decompose( position, quaternion, scale );
 
 
 			orientation.set( 0, 0, - 1 ).applyQuaternion( quaternion );
 			orientation.set( 0, 0, - 1 ).applyQuaternion( quaternion );
 
 
 			if ( listener.positionX ) {
 			if ( listener.positionX ) {
 
 
-				// code path for Chrome (see #14393)
-
-				var endTime = this.context.currentTime + this.timeDelta;
-
-				listener.positionX.linearRampToValueAtTime( position.x, endTime );
-				listener.positionY.linearRampToValueAtTime( position.y, endTime );
-				listener.positionZ.linearRampToValueAtTime( position.z, endTime );
-				listener.forwardX.linearRampToValueAtTime( orientation.x, endTime );
-				listener.forwardY.linearRampToValueAtTime( orientation.y, endTime );
-				listener.forwardZ.linearRampToValueAtTime( orientation.z, endTime );
-				listener.upX.linearRampToValueAtTime( up.x, endTime );
-				listener.upY.linearRampToValueAtTime( up.y, endTime );
-				listener.upZ.linearRampToValueAtTime( up.z, endTime );
+				listener.positionX.setValueAtTime( position.x, this.context.currentTime );
+				listener.positionY.setValueAtTime( position.y, this.context.currentTime );
+				listener.positionZ.setValueAtTime( position.z, this.context.currentTime );
+				listener.forwardX.setValueAtTime( orientation.x, this.context.currentTime );
+				listener.forwardY.setValueAtTime( orientation.y, this.context.currentTime );
+				listener.forwardZ.setValueAtTime( orientation.z, this.context.currentTime );
+				listener.upX.setValueAtTime( up.x, this.context.currentTime );
+				listener.upY.setValueAtTime( up.y, this.context.currentTime );
+				listener.upZ.setValueAtTime( up.z, this.context.currentTime );
 
 
 			} else {
 			} else {
 
 

+ 2 - 19
src/audio/PositionalAudio.js

@@ -109,25 +109,8 @@ PositionalAudio.prototype = Object.assign( Object.create( Audio.prototype ), {
 
 
 			orientation.set( 0, 0, 1 ).applyQuaternion( quaternion );
 			orientation.set( 0, 0, 1 ).applyQuaternion( quaternion );
 
 
-			if ( panner.positionX ) {
-
-				// code path for Chrome and Firefox (see #14393)
-
-				var endTime = this.context.currentTime + this.listener.timeDelta;
-
-				panner.positionX.linearRampToValueAtTime( position.x, endTime );
-				panner.positionY.linearRampToValueAtTime( position.y, endTime );
-				panner.positionZ.linearRampToValueAtTime( position.z, endTime );
-				panner.orientationX.linearRampToValueAtTime( orientation.x, endTime );
-				panner.orientationY.linearRampToValueAtTime( orientation.y, endTime );
-				panner.orientationZ.linearRampToValueAtTime( orientation.z, endTime );
-
-			} else {
-
-				panner.setPosition( position.x, position.y, position.z );
-				panner.setOrientation( orientation.x, orientation.y, orientation.z );
-
-			}
+			panner.setPosition( position.x, position.y, position.z );
+			panner.setOrientation( orientation.x, orientation.y, orientation.z );
 
 
 		};
 		};