Sfoglia il codice sorgente

Fixed screenshot when scene has multi-cameras. Issue #9201

Gabriel Bertolini Heming 4 anni fa
parent
commit
889fdf0f58
1 ha cambiato i file con 11 aggiunte e 0 eliminazioni
  1. 11 0
      src/Misc/screenshotTools.ts

+ 11 - 0
src/Misc/screenshotTools.ts

@@ -126,12 +126,18 @@ export class ScreenshotTools {
 
         var scene = camera.getScene();
         var previousCamera: Nullable<Camera> = null;
+        let previousActiveCameras: Camera[] = [];
 
         if (scene.activeCamera !== camera) {
             previousCamera = scene.activeCamera;
             scene.activeCamera = camera;
         }
 
+        if (scene.activeCameras.length > 0) {
+            previousActiveCameras = scene.activeCameras;
+            scene.activeCameras = [] as Camera[];
+        }
+
         var renderCanvas = engine.getRenderingCanvas();
         if (!renderCanvas) {
             Logger.Error("No rendering canvas found !");
@@ -160,6 +166,11 @@ export class ScreenshotTools {
             if (previousCamera) {
                 scene.activeCamera = previousCamera;
             }
+
+            if (previousActiveCameras.length > 0) {
+                scene.activeCameras = previousActiveCameras;
+            }
+
             engine.setSize(originalSize.width, originalSize.height);
             camera.getProjectionMatrix(true); // Force cache refresh;
         };