[Bf-blender-cvs] [3da57487873] temp-xr-virtual-camera-experiment: Fix corrupt rv3d.

Jeroen Bakker noreply at git.blender.org
Fri Nov 11 14:09:50 CET 2022


Commit: 3da57487873dcac70e29b4f4b82d93889477fed9
Author: Jeroen Bakker
Date:   Fri Nov 11 14:09:19 2022 +0100
Branches: temp-xr-virtual-camera-experiment
https://developer.blender.org/rB3da57487873dcac70e29b4f4b82d93889477fed9

Fix corrupt rv3d.

===================================================================

M	source/blender/editors/space_view3d/view3d_draw.cc

===================================================================

diff --git a/source/blender/editors/space_view3d/view3d_draw.cc b/source/blender/editors/space_view3d/view3d_draw.cc
index 2da8e86b043..468de37a9a2 100644
--- a/source/blender/editors/space_view3d/view3d_draw.cc
+++ b/source/blender/editors/space_view3d/view3d_draw.cc
@@ -1551,11 +1551,13 @@ static void view3d_virtual_camera_update(const bContext *C, ARegion *region, Obj
   View3D *v3d = CTX_wm_view3d(C);
   int2 resolution(1920 / 2, 1080 / 2);
 
-  RegionView3D *rv3d = static_cast<RegionView3D *>(region->regiondata);
-  int old_persp = rv3d->persp;
+  RegionView3D *old_rv3d = static_cast<RegionView3D *>(region->regiondata);
+  RegionView3D rv3d = {*old_rv3d};
+  region->regiondata = &rv3d;
+
   Object *old_camera = v3d->camera;
   v3d->camera = object;
-  rv3d->persp = RV3D_CAMOB;
+  rv3d.persp = RV3D_CAMOB;
 
   Camera *camera = static_cast<Camera *>(object->data);
   if (camera->runtime.virtual_display_texture == nullptr) {
@@ -1599,7 +1601,7 @@ static void view3d_virtual_camera_update(const bContext *C, ARegion *region, Obj
       camera->runtime.virtual_display_texture);
 
   v3d->camera = old_camera;
-  rv3d->persp = old_persp;
+  region->regiondata = old_rv3d;
 }
 
 static void view3d_draw_virtual_camera(const bContext *C, ARegion *region)



More information about the Bf-blender-cvs mailing list