diff options
author | Ton Roosendaal <ton@blender.org> | 2006-03-09 15:48:13 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-03-09 15:48:13 +0300 |
commit | 610a813c0c2d4087fe347f8bda55041f863c4c45 (patch) | |
tree | 07d87891fab94a3722aeea7876ad1c842c86bd7e /source | |
parent | dd91048c062104e88c52fae76e440c32597f2f10 (diff) |
Bugfix... very ancient one even. When you use multiple screens in a project
with each having different scenes, changing screens didn't call the proper
set_scene() call, which left quite some stuff improperly initialized.
With depsgraph code even causes crashing.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/intern/depsgraph.c | 5 | ||||
-rw-r--r-- | source/blender/src/editscreen.c | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/depsgraph.c b/source/blender/blenkernel/intern/depsgraph.c index 9d8857d4119..5b8cd7e5d21 100644 --- a/source/blender/blenkernel/intern/depsgraph.c +++ b/source/blender/blenkernel/intern/depsgraph.c @@ -1504,6 +1504,11 @@ void DAG_scene_flush_update(Scene *sce, unsigned int lay) DagAdjList *itA; int lasttime; + if(sce->theDag==NULL) { + printf("DAG zero... not allowed to happen!\n"); + DAG_scene_sort(sce); + } + firstnode= sce->theDag->DagNode.first; // always scene node /* first we flush the layer flags */ diff --git a/source/blender/src/editscreen.c b/source/blender/src/editscreen.c index 541d353194e..412becf4068 100644 --- a/source/blender/src/editscreen.c +++ b/source/blender/src/editscreen.c @@ -75,6 +75,7 @@ #include "BKE_screen.h" #include "BIF_cursors.h" +#include "BIF_drawscene.h" #include "BIF_editsound.h" #include "BIF_glutil.h" #include "BIF_gl.h" @@ -2227,7 +2228,9 @@ void setscreen(bScreen *sc) sa->cursor= CURSOR_STD; } - G.scene= sc->scene; + if(G.scene!=sc->scene) + set_scene(sc->scene); + countall(); G.curscreen->winakt= 0; |