소스 검색

engine configuration and disableResize flag

Raanan Weber 7 년 전
부모
커밋
017f2e8304
4개의 변경된 파일24개의 추가작업 그리고 9개의 파일을 삭제
  1. 2 1
      Viewer/src/configuration/configuration.ts
  2. 4 0
      Viewer/src/viewer/viewer.ts
  3. 1 8
      Viewer/tests/commons/helper.ts
  4. 17 0
      Viewer/tests/unit/src/Viewer/viewer.ts

+ 2 - 1
Viewer/src/configuration/configuration.ts

@@ -1,4 +1,5 @@
 import { ITemplateConfiguration } from './../templateManager';
+import { EngineOptions } from 'babylonjs';
 
 export interface ViewerConfiguration {
 
@@ -33,7 +34,7 @@ export interface ViewerConfiguration {
     engine?: {
         antialiasing?: boolean;
         disableResize?: boolean;
-        engineOptions?: { [key: string]: any };
+        engineOptions?: EngineOptions;
         adaptiveQuality?: boolean;
     },
     //templateStructure?: ITemplateStructure,

+ 4 - 0
Viewer/src/viewer/viewer.ts

@@ -243,6 +243,10 @@ export abstract class AbstractViewer {
             return;
         }
 
+        if (this._configuration.engine && this._configuration.engine.disableResize) {
+            return;
+        }
+
         this.engine.resize();
     }
 

+ 1 - 8
Viewer/tests/commons/helper.ts

@@ -65,7 +65,7 @@ export class Helper {
     }
 
     public static createMockMesh(viewer: AbstractViewer) {
-        let scene = viewer.scene;
+        let scene = viewer.sceneManager.scene;
         let mat = new BABYLON.PBRMaterial('mock-material', scene);
         let mesh = BABYLON.MeshBuilder.CreateBox('mock-box', {
             width: 1, height: 1, depth: 1,
@@ -137,7 +137,6 @@ export class NullEngineAbstractViewer extends AbstractViewer {
             window.addEventListener('resize', this._resize);
         }
 
-
         this.engine.runRenderLoop(this._render);
 
         if (this._configuration.engine && this._configuration.engine.adaptiveQuality) {
@@ -145,9 +144,6 @@ export class NullEngineAbstractViewer extends AbstractViewer {
             this.engine.setHardwareScalingLevel(scale);
         }
 
-        // set hardware limitations for scene initialization
-        this._handleHardwareLimitations();
-
         return Promise.resolve(this.engine);
     }
 }
@@ -184,9 +180,6 @@ export class NullEngineDefaultViewer extends DefaultViewer {
             this.engine.setHardwareScalingLevel(scale);
         }
 
-        // set hardware limitations for scene initialization
-        this._handleHardwareLimitations();
-
         return Promise.resolve(this.engine);
     }
 }

+ 17 - 0
Viewer/tests/unit/src/Viewer/viewer.ts

@@ -109,6 +109,7 @@ describe('Viewer', function () {
         let resizeCount = 0;
         //wait for the engine to init
         viewer.onEngineInitObservable.add((engine) => {
+            // mock the resize function
             engine.resize = () => {
                 resizeCount++;
             }
@@ -119,6 +120,22 @@ describe('Viewer', function () {
             viewer.forceResize();
             assert.equal(resizeCount, 1, "Engine should resize when Viewer.forceResize() is called.");
 
+            viewer.updateConfiguration({
+                engine: {
+                    disableResize: true
+                }
+            });
+
+            viewer.forceResize();
+
+            assert.equal(resizeCount, 1, "Engine should not resize when disableResize is enabled");
+
+            viewer.updateConfiguration({
+                engine: {
+                    disableResize: false
+                }
+            });
+
             viewer.canvas.style.width = '0px';
             viewer.canvas.style.height = '0px';
             viewer.forceResize();