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
diff options
context:
space:
mode:
authorLukas Toenne <lukas.toenne@googlemail.com>2013-04-30 11:40:15 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2013-04-30 11:40:15 +0400
commitf01986c97c9b5f3fce9e11dadc1e89f8266732f3 (patch)
treeae3ea894cd0a91e12509897cac9156997dfc3eb7 /source/blender/blenloader
parent39ac11a3026c8bbdb90f48fc3b1a92d2808eb789 (diff)
Fix for #35147, view in backdrop and image editor in compositor don't work anymore. The active_viewer_key which sets the active node tree to use for the viewer image was not initialized in do_versions yet.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r--source/blender/blenloader/intern/readfile.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index a2e97e8063c..78fcc22ea66 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -9396,6 +9396,41 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
}
}
+ {
+ /* Initialize the active_viewer_key for compositing */
+ bScreen *screen;
+ Scene *scene;
+ bNodeInstanceKey active_viewer_key = {0};
+ /* simply pick the first node space and use that for the active viewer key */
+ for (screen = main->screen.first; screen; screen = screen->id.next) {
+ ScrArea *sa;
+ for (sa = screen->areabase.first; sa; sa = sa->next) {
+ SpaceLink *sl;
+ for (sl = sa->spacedata.first; sl; sl= sl->next) {
+ if (sl->spacetype == SPACE_NODE) {
+ SpaceNode *snode = (SpaceNode *)sl;
+ bNodeTreePath *path = snode->treepath.last;
+ if (!path)
+ continue;
+
+ active_viewer_key = path->parent_key;
+ break;
+ }
+ }
+ if (active_viewer_key.value != 0)
+ break;
+ }
+ if (active_viewer_key.value != 0)
+ break;
+ }
+
+ for (scene = main->scene.first; scene; scene = scene->id.next) {
+ /* NB: scene->nodetree is a local ID block, has been direct_link'ed */
+ if (scene->nodetree)
+ scene->nodetree->active_viewer_key = active_viewer_key;
+ }
+ }
+
/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
/* WATCH IT 2!: Userdef struct init see do_versions_userdef() above! */