Просмотр исходного кода

Validation tests scaling and optimizer dispose

sebastien 7 лет назад
Родитель
Сommit
62feacc3b0

Разница между файлами не показана из-за своего большого размера
+ 5742 - 5741
Playground/babylon.d.txt


Разница между файлами не показана из-за своего большого размера
+ 11214 - 11213
dist/preview release/babylon.d.ts


Разница между файлами не показана из-за своего большого размера
+ 4 - 4
dist/preview release/babylon.js


+ 9 - 1
dist/preview release/babylon.max.js

@@ -9566,7 +9566,7 @@ var BABYLON;
         });
         });
         Object.defineProperty(Engine, "Version", {
         Object.defineProperty(Engine, "Version", {
             get: function () {
             get: function () {
-                return "3.2.0-alpha2";
+                return "3.2.0-alpha3";
             },
             },
             enumerable: true,
             enumerable: true,
             configurable: true
             configurable: true
@@ -76962,6 +76962,7 @@ var BABYLON;
          */
          */
         function SceneOptimizer(scene, options, autoGeneratePriorities) {
         function SceneOptimizer(scene, options, autoGeneratePriorities) {
             if (autoGeneratePriorities === void 0) { autoGeneratePriorities = true; }
             if (autoGeneratePriorities === void 0) { autoGeneratePriorities = true; }
+            var _this = this;
             this._isRunning = false;
             this._isRunning = false;
             this._currentPriorityLevel = 0;
             this._currentPriorityLevel = 0;
             this._targetFrameRate = 60;
             this._targetFrameRate = 60;
@@ -76999,6 +77000,9 @@ var BABYLON;
                 }
                 }
             }
             }
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
+            this._sceneDisposeObserver = this._scene.onDisposeObservable.add(function () {
+                _this.dispose();
+            });
         }
         }
         Object.defineProperty(SceneOptimizer.prototype, "currentPriorityLevel", {
         Object.defineProperty(SceneOptimizer.prototype, "currentPriorityLevel", {
             /**
             /**
@@ -77129,9 +77133,13 @@ var BABYLON;
          * Release all resources
          * Release all resources
          */
          */
         SceneOptimizer.prototype.dispose = function () {
         SceneOptimizer.prototype.dispose = function () {
+            this.stop();
             this.onSuccessObservable.clear();
             this.onSuccessObservable.clear();
             this.onFailureObservable.clear();
             this.onFailureObservable.clear();
             this.onNewOptimizationAppliedObservable.clear();
             this.onNewOptimizationAppliedObservable.clear();
+            if (this._sceneDisposeObserver) {
+                this._scene.onDisposeObservable.remove(this._sceneDisposeObserver);
+            }
         };
         };
         /**
         /**
          * Helper function to create a SceneOptimizer with one single line of code
          * Helper function to create a SceneOptimizer with one single line of code

Разница между файлами не показана из-за своего большого размера
+ 4 - 4
dist/preview release/babylon.worker.js


Разница между файлами не показана из-за своего большого размера
+ 576 - 575
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.d.ts


Разница между файлами не показана из-за своего большого размера
+ 5 - 5
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.js


+ 9 - 1
dist/preview release/customConfigurations/minimalGLTFViewer/babylon.max.js

@@ -9566,7 +9566,7 @@ var BABYLON;
         });
         });
         Object.defineProperty(Engine, "Version", {
         Object.defineProperty(Engine, "Version", {
             get: function () {
             get: function () {
-                return "3.2.0-alpha2";
+                return "3.2.0-alpha3";
             },
             },
             enumerable: true,
             enumerable: true,
             configurable: true
             configurable: true
@@ -76808,6 +76808,7 @@ var BABYLON;
          */
          */
         function SceneOptimizer(scene, options, autoGeneratePriorities) {
         function SceneOptimizer(scene, options, autoGeneratePriorities) {
             if (autoGeneratePriorities === void 0) { autoGeneratePriorities = true; }
             if (autoGeneratePriorities === void 0) { autoGeneratePriorities = true; }
+            var _this = this;
             this._isRunning = false;
             this._isRunning = false;
             this._currentPriorityLevel = 0;
             this._currentPriorityLevel = 0;
             this._targetFrameRate = 60;
             this._targetFrameRate = 60;
@@ -76845,6 +76846,9 @@ var BABYLON;
                 }
                 }
             }
             }
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
             this._scene = scene || BABYLON.Engine.LastCreatedScene;
+            this._sceneDisposeObserver = this._scene.onDisposeObservable.add(function () {
+                _this.dispose();
+            });
         }
         }
         Object.defineProperty(SceneOptimizer.prototype, "currentPriorityLevel", {
         Object.defineProperty(SceneOptimizer.prototype, "currentPriorityLevel", {
             /**
             /**
@@ -76975,9 +76979,13 @@ var BABYLON;
          * Release all resources
          * Release all resources
          */
          */
         SceneOptimizer.prototype.dispose = function () {
         SceneOptimizer.prototype.dispose = function () {
+            this.stop();
             this.onSuccessObservable.clear();
             this.onSuccessObservable.clear();
             this.onFailureObservable.clear();
             this.onFailureObservable.clear();
             this.onNewOptimizationAppliedObservable.clear();
             this.onNewOptimizationAppliedObservable.clear();
+            if (this._sceneDisposeObserver) {
+                this._scene.onDisposeObservable.remove(this._sceneDisposeObserver);
+            }
         };
         };
         /**
         /**
          * Helper function to create a SceneOptimizer with one single line of code
          * Helper function to create a SceneOptimizer with one single line of code

Разница между файлами не показана из-за своего большого размера
+ 1 - 1
dist/preview release/loaders/babylon.objFileLoader.min.js


Разница между файлами не показана из-за своего большого размера
+ 3 - 3
dist/preview release/loaders/babylonjs.loaders.min.js


Разница между файлами не показана из-за своего большого размера
+ 10 - 10
dist/preview release/viewer/babylon.viewer.js


+ 9 - 0
src/Tools/babylon.sceneOptimizer.ts

@@ -539,6 +539,7 @@
         private _targetFrameRate = 60;
         private _targetFrameRate = 60;
         private _trackerDuration = 2000;
         private _trackerDuration = 2000;
         private _currentFrameRate = 0;
         private _currentFrameRate = 0;
+        private _sceneDisposeObserver: Nullable<Observer<Scene>>;
 
 
         /**
         /**
          * Defines an observable called when the optimizer reaches the target frame rate
          * Defines an observable called when the optimizer reaches the target frame rate
@@ -631,6 +632,10 @@
             }
             }
 
 
             this._scene = scene || Engine.LastCreatedScene;
             this._scene = scene || Engine.LastCreatedScene;
+            this._sceneDisposeObserver = this._scene.onDisposeObservable.add(() => {
+                this._sceneDisposeObserver = null;
+                this.dispose();
+            })
         }
         }
 
 
         /**
         /**
@@ -713,9 +718,13 @@
          * Release all resources
          * Release all resources
          */
          */
         public dispose(): void {
         public dispose(): void {
+            this.stop();
             this.onSuccessObservable.clear();
             this.onSuccessObservable.clear();
             this.onFailureObservable.clear();
             this.onFailureObservable.clear();
             this.onNewOptimizationAppliedObservable.clear();
             this.onNewOptimizationAppliedObservable.clear();
+            if (this._sceneDisposeObserver) {
+                this._scene.onDisposeObservable.remove(this._sceneDisposeObserver);
+            }
         }
         }
 
 
         /**
         /**

+ 1 - 0
tests/validation/validation.js

@@ -124,6 +124,7 @@ function evaluate(test, resultCanvas, result, renderImage, index, waitRing, done
     renderImage.src = renderB64;
     renderImage.src = renderB64;
 
 
     currentScene.dispose();
     currentScene.dispose();
+    engine.setHardwareScalingLevel(1);
 
 
     done(testRes, renderB64);
     done(testRes, renderB64);
 }
 }