[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