[Bf-blender-cvs] [e0f4fbd45ad] workspaces: Merge branch 'blender2.8' into workspaces
Julian Eisel
noreply at git.blender.org
Wed May 3 23:50:31 CEST 2017
Commit: e0f4fbd45ad6e57b315950a04d6a873b1cf3e5b2
Author: Julian Eisel
Date: Wed May 3 23:49:53 2017 +0200
Branches: workspaces
https://developer.blender.org/rBe0f4fbd45ad6e57b315950a04d6a873b1cf3e5b2
Merge branch 'blender2.8' into workspaces
Conflicts:
source/blender/blenkernel/intern/scene.c
source/blender/blenloader/intern/readfile.c
source/blender/blenloader/intern/versioning_280.c
===================================================================
===================================================================
diff --cc source/blender/blenkernel/BKE_layer.h
index a152846b439,a54cce73c7f..b64a28da13d
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@@ -57,8 -57,9 +57,10 @@@ struct Scene
struct SceneCollection;
struct SceneLayer;
+ void BKE_layer_exit(void);
+
struct SceneLayer *BKE_scene_layer_render_active(const struct Scene *scene);
+struct SceneLayer *BKE_scene_layer_context_active_ex(const struct Main *bmain, const struct Scene *scene);
struct SceneLayer *BKE_scene_layer_context_active(const struct Scene *scene);
struct SceneLayer *BKE_scene_layer_add(struct Scene *scene, const char *name);
diff --cc source/blender/blenkernel/intern/scene.c
index ace8641eb1f,44e29e5b994..5aa3e87d335
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@@ -1418,9 -1418,15 +1419,15 @@@ static bool check_rendered_viewport_vis
wmWindowManager *wm = bmain->wm.first;
wmWindow *window;
for (window = wm->windows.first; window != NULL; window = window->next) {
- bScreen *screen = window->screen;
- Scene *scene = screen->scene;
+ const bScreen *screen = BKE_workspace_active_screen_get(window->workspace_hook);
-
- for (ScrArea *area = screen->areabase.first; area != NULL; area = area->next) {
++ Scene *scene = window->scene;
+ ScrArea *area;
+ RenderEngineType *type = RE_engines_find(scene->r.engine);
+ if ((type->draw_engine != NULL) || (type->render_to_view == NULL)) {
+ continue;
+ }
+ const bool use_legacy = (type->flag & RE_USE_LEGACY_PIPELINE) != 0;
+ for (area = screen->areabase.first; area != NULL; area = area->next) {
View3D *v3d = area->spacedata.first;
if (area->spacetype != SPACE_VIEW3D) {
continue;
diff --cc source/blender/blenloader/intern/readfile.c
index 243e0adeb30,5f533f02bd1..2c2b2c1ba28
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -6412,8 -6313,7 +6430,9 @@@ static void direct_link_scene(FileData
sce->collection_properties = newdataadr(fd, sce->collection_properties);
IDP_DirectLinkGroup_OrFree(&sce->collection_properties, (fd->flags & FD_FLAGS_SWITCH_ENDIAN), fd);
+ BKE_layer_collection_engine_settings_validate(sce);
+
+ direct_link_scene_update_screen_data(fd, &bmain->workspaces, &bmain->screen);
}
/* ************ READ WM ***************** */
diff --cc source/blender/blenloader/intern/versioning_280.c
index 2a65fbd48c3,70c35788527..6a28132f460
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -283,55 -182,36 +283,51 @@@ void do_versions_after_linking_280(Mai
scene->basact = NULL;
}
}
+ }
+
+ if (!MAIN_VERSION_ATLEAST(main, 280, 0)) {
+ IDPropertyTemplate val = {0};
+ for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
+ scene->collection_properties = IDP_New(IDP_GROUP, &val, ROOT_PROP);
+ BKE_layer_collection_engine_settings_create(scene->collection_properties);
+ }
+
+ for (bScreen *screen = main->screen.first; screen; screen = screen->id.next) {
+ for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
+ for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
+ if (sl->spacetype == SPACE_OUTLINER) {
+ SpaceOops *soutliner = (SpaceOops *)sl;
+ SceneLayer *layer = BKE_scene_layer_context_active(screen->scene);
+
+ soutliner->outlinevis = SO_ACT_LAYER;
+
+ if (BLI_listbase_count_ex(&layer->layer_collections, 2) == 1) {
+ if (soutliner->treestore == NULL) {
+ soutliner->treestore = BLI_mempool_create(
+ sizeof(TreeStoreElem), 1, 512, BLI_MEMPOOL_ALLOW_ITER);
+ }
+
+ /* Create a tree store element for the collection. This is normally
+ * done in check_persistent (outliner_tree.c), but we need to access
+ * it here :/ (expand element if it's the only one) */
+ TreeStoreElem *tselem = BLI_mempool_calloc(soutliner->treestore);
+ tselem->type = TSE_LAYER_COLLECTION;
+ tselem->id = layer->layer_collections.first;
+ tselem->nr = tselem->used = 0;
+ tselem->flag &= ~TSE_CLOSED;
+ }
+ }
+ }
+ }
+ }
}
+
+ {
+ /* New workspace design */
+ if (!MAIN_VERSION_ATLEAST(main, 280, 1)) {
+ do_version_workspaces_after_lib_link(main);
+ }
-
- if (!MAIN_VERSION_ATLEAST(main, 280, 1)) {
- BKE_WORKSPACE_ITER_BEGIN (workspace, main->workspaces.first) {
- SceneLayer *layer = BKE_workspace_render_layer_get(workspace);
- const bool is_single_collection = BLI_listbase_count_ex(&layer->layer_collections, 2) == 1;
- ListBase *layouts = BKE_workspace_layouts_get(workspace);
-
- BKE_WORKSPACE_LAYOUT_ITER_BEGIN (layout, layouts->first) {
- bScreen *screen = BKE_workspace_layout_screen_get(layout);
-
- for (ScrArea *sa = screen->areabase.first; sa; sa = sa->next) {
- for (SpaceLink *sl = sa->spacedata.first; sl; sl = sl->next) {
- if (sl->spacetype == SPACE_OUTLINER) {
- SpaceOops *soutliner = (SpaceOops *)sl;
-
- soutliner->outlinevis = SO_ACT_LAYER;
-
- if (is_single_collection) {
- /* Create a tree store element for the collection. This is normally
- * done in check_persistent (outliner_tree.c), but we need to access
- * it here :/ (expand element if it's the only one) */
- TreeStoreElem *tselem = BLI_mempool_calloc(soutliner->treestore);
- tselem->type = TSE_LAYER_COLLECTION;
- tselem->id = layer->layer_collections.first;
- tselem->nr = tselem->used = 0;
- tselem->flag &= ~TSE_CLOSED;
- }
- }
- }
- }
- } BKE_WORKSPACE_LAYOUT_ITER_END;
- } BKE_WORKSPACE_ITER_END;
- }
+ }
}
static void do_version_layer_collections_idproperties(ListBase *lb)
More information about the Bf-blender-cvs
mailing list