소스 검색

Add custom optimizers
So far it was only possible to use the existing custom optimizers or the regular degredation optimization levels.

Raanan Weber 7 년 전
부모
커밋
2c86fc3122
3개의 변경된 파일7개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      Viewer/src/index.ts
  2. 4 0
      Viewer/src/optimizer/custom/index.ts
  3. 1 0
      dist/preview release/what's new.md

+ 2 - 1
Viewer/src/index.ts

@@ -9,6 +9,7 @@ import { ViewerModel, ModelState } from './model/viewerModel';
 import { AnimationPlayMode, AnimationState } from './model/modelAnimation';
 import { ILoaderPlugin } from './loader/plugins/loaderPlugin';
 import { AbstractViewerNavbarButton } from './templating/viewerTemplatePlugin';
+import { registerCustomOptimizer } from './optimizer/custom';
 
 /**
  * BabylonJS Viewer
@@ -45,6 +46,6 @@ const Version = viewerGlobals.version;
 console.log("Babylon.js viewer (v" + Version + ")");
 
 // public API for initialization
-export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, ILoaderPlugin, AbstractViewerNavbarButton };
+export { BABYLON, Version, InitTags, DefaultViewer, AbstractViewer, viewerGlobals, telemetryManager, disableInit, viewerManager, mapperManager, disposeAll, ModelLoader, ViewerModel, AnimationPlayMode, AnimationState, ModelState, ILoaderPlugin, AbstractViewerNavbarButton, registerCustomOptimizer };
 // export publicliy all configuration interfaces
 export * from './configuration';

+ 4 - 0
Viewer/src/optimizer/custom/index.ts

@@ -22,4 +22,8 @@ export function getCustomOptimizerByName(name: string, upgrade?: boolean) {
     }
 
     return cache[name];
+}
+
+export function registerCustomOptimizer(name: string, optimizer: (sceneManager: SceneManager) => boolean) {
+    cache[name] = optimizer;
 }

+ 1 - 0
dist/preview release/what's new.md

@@ -133,6 +133,7 @@
 - Viewer is not using Engine.LastCreatedScene anymore, to support multiple viewers in a single page [#4500](https://github.com/BabylonJS/Babylon.js/issues/4500) ([RaananW](https://github.com/RaananW))
 - Template location was ignored if html was defined ([RaananW](https://github.com/RaananW))
 - Drag and Drop only worked if a model was already loaded before ([RaananW](https://github.com/RaananW))
+- It was not possible to add new custom optimizers, only to use existing ones ([RaananW](https://github.com/RaananW))
 
 ### Loaders