Explorar o código

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

Gabriel Bertolini Heming %!s(int64=4) %!d(string=hai) anos
pai
achega
889fdf0f58
Modificáronse 1 ficheiros con 11 adicións e 0 borrados
  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;
         };