Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-10-16 11:15:52 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-10-16 11:15:52 +0300
commit76e8d2cc174315e3f71b561872e4fb88cfd75743 (patch)
tree323681629c8c1d9475ebe5b132f973da06acd32e /source
parent4a77ddf146e2842080ba1febcc9c58af9c77f848 (diff)
parent80f0bc99a9831709338fdb252546829afdf4912a (diff)
Merge branch 'blender-v2.81-release'
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/BKE_scene.h2
-rw-r--r--source/blender/blenkernel/intern/scene.c8
-rw-r--r--source/blender/makesrna/intern/rna_scene_api.c6
3 files changed, 10 insertions, 6 deletions
diff --git a/source/blender/blenkernel/BKE_scene.h b/source/blender/blenkernel/BKE_scene.h
index 5b77c36024a..51abc7390b8 100644
--- a/source/blender/blenkernel/BKE_scene.h
+++ b/source/blender/blenkernel/BKE_scene.h
@@ -125,7 +125,7 @@ struct Scene *BKE_scene_find_from_collection(const struct Main *bmain,
#ifdef DURIAN_CAMERA_SWITCH
struct Object *BKE_scene_camera_switch_find(struct Scene *scene); // DURIAN_CAMERA_SWITCH
#endif
-int BKE_scene_camera_switch_update(struct Scene *scene);
+bool BKE_scene_camera_switch_update(struct Scene *scene);
char *BKE_scene_find_marker_name(struct Scene *scene, int frame);
char *BKE_scene_find_last_marker_name(struct Scene *scene, int frame);
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index e8e849cdf6d..53e5f1fdfe5 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1008,19 +1008,19 @@ Object *BKE_scene_camera_switch_find(Scene *scene)
}
#endif
-int BKE_scene_camera_switch_update(Scene *scene)
+bool BKE_scene_camera_switch_update(Scene *scene)
{
#ifdef DURIAN_CAMERA_SWITCH
Object *camera = BKE_scene_camera_switch_find(scene);
- if (camera) {
+ if (camera && (camera != scene->camera)) {
scene->camera = camera;
DEG_id_tag_update(&scene->id, ID_RECALC_COPY_ON_WRITE);
- return 1;
+ return true;
}
#else
(void)scene;
#endif
- return 0;
+ return false;
}
char *BKE_scene_find_marker_name(Scene *scene, int frame)
diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c
index 2b1b23a40f4..8a06d594c1f 100644
--- a/source/blender/makesrna/intern/rna_scene_api.c
+++ b/source/blender/makesrna/intern/rna_scene_api.c
@@ -88,7 +88,11 @@ static void rna_Scene_frame_set(Scene *scene, Main *bmain, int frame, float subf
BPy_END_ALLOW_THREADS;
# endif
- BKE_scene_camera_switch_update(scene);
+ if (BKE_scene_camera_switch_update(scene)) {
+ for (bScreen *sc = bmain->screens.first; sc; sc = sc->id.next) {
+ BKE_screen_view3d_scene_sync(sc, scene);
+ }
+ }
/* don't do notifier when we're rendering, avoid some viewport crashes
* redrawing while the data is being modified for render */