[Bf-blender-cvs] [3f0871dfcfb] topbar: Merge branch 'blender2.8' into topbar

Julian Eisel noreply at git.blender.org
Mon Jan 29 23:26:41 CET 2018


Commit: 3f0871dfcfbb1dda15c176dba92d36639305385a
Author: Julian Eisel
Date:   Mon Jan 29 22:53:32 2018 +0100
Branches: topbar
https://developer.blender.org/rB3f0871dfcfbb1dda15c176dba92d36639305385a

Merge branch 'blender2.8' into topbar

===================================================================



===================================================================

diff --cc source/blender/blenloader/intern/readfile.c
index 94f5f790f1c,236b14af8b0..54444ff5151
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -7172,10 -6667,197 +7192,11 @@@ static void lib_link_screen(FileData *f
  			sc->scene = newlibadr(fd, sc->id.lib, sc->scene);
  
  			sc->animtimer = NULL; /* saved in rare cases */
+ 			sc->tool_tip = NULL;
  			sc->scrubbing = false;
  			
 -			for (ScrArea *sa = sc->areabase.first; sa; sa = sa->next) {
 -				sa->full = newlibadr(fd, sc->id.lib, sa->full);
 -				
 -				for (SpaceLink *sl = sa->spacedata.first; sl; sl= sl->next) {
 -					switch (sl->spacetype) {
 -						case SPACE_VIEW3D:
 -						{
 -							View3D *v3d = (View3D*) sl;
 -
 -							v3d->camera= newlibadr(fd, sc->id.lib, v3d->camera);
 -							v3d->ob_centre= newlibadr(fd, sc->id.lib, v3d->ob_centre);
 -
 -							if (v3d->localvd) {
 -								v3d->localvd->camera = newlibadr(fd, sc->id.lib, v3d->localvd->camera);
 -							}
 -							break;
 -						}
 -						case SPACE_IPO:
 -						{
 -							SpaceIpo *sipo = (SpaceIpo *)sl;
 -							bDopeSheet *ads = sipo->ads;
 -
 -							if (ads) {
 -								ads->source = newlibadr(fd, sc->id.lib, ads->source);
 -								ads->filter_grp = newlibadr(fd, sc->id.lib, ads->filter_grp);
 -							}
 -							break;
 -						}
 -						case SPACE_BUTS:
 -						{
 -							SpaceButs *sbuts = (SpaceButs *)sl;
 -							sbuts->pinid = newlibadr(fd, sc->id.lib, sbuts->pinid);
 -							if (sbuts->pinid == NULL) {
 -								sbuts->flag &= ~SB_PIN_CONTEXT;
 -							}
 -							break;
 -						}
 -						case SPACE_FILE:
 -							break;
 -						case SPACE_ACTION:
 -						{
 -							SpaceAction *saction = (SpaceAction *)sl;
 -							bDopeSheet *ads = &saction->ads;
 -
 -							if (ads) {
 -								ads->source = newlibadr(fd, sc->id.lib, ads->source);
 -								ads->filter_grp = newlibadr(fd, sc->id.lib, ads->filter_grp);
 -							}
 -
 -							saction->action = newlibadr(fd, sc->id.lib, saction->action);
 -							break;
 -						}
 -						case SPACE_IMAGE:
 -						{
 -							SpaceImage *sima = (SpaceImage *)sl;
 -
 -							sima->image = newlibadr_real_us(fd, sc->id.lib, sima->image);
 -							sima->mask_info.mask = newlibadr_real_us(fd, sc->id.lib, sima->mask_info.mask);
 -
 -							/* NOTE: pre-2.5, this was local data not lib data, but now we need this as lib data
 -							 * so fingers crossed this works fine!
 -							 */
 -							sima->gpd = newlibadr_us(fd, sc->id.lib, sima->gpd);
 -							break;
 -						}
 -						case SPACE_SEQ:
 -						{
 -							SpaceSeq *sseq = (SpaceSeq *)sl;
 -
 -							/* NOTE: pre-2.5, this was local data not lib data, but now we need this as lib data
 -							 * so fingers crossed this works fine!
 -							 */
 -							sseq->gpd = newlibadr_us(fd, sc->id.lib, sseq->gpd);
 -							break;
 -						}
 -						case SPACE_NLA:
 -						{
 -							SpaceNla *snla= (SpaceNla *)sl;
 -							bDopeSheet *ads= snla->ads;
 -
 -							if (ads) {
 -								ads->source = newlibadr(fd, sc->id.lib, ads->source);
 -								ads->filter_grp = newlibadr(fd, sc->id.lib, ads->filter_grp);
 -							}
 -							break;
 -						}
 -						case SPACE_TEXT:
 -						{
 -							SpaceText *st= (SpaceText *)sl;
 -
 -							st->text= newlibadr(fd, sc->id.lib, st->text);
 -							break;
 -						}
 -						case SPACE_SCRIPT:
 -						{
 -							SpaceScript *scpt = (SpaceScript *)sl;
 -							/*scpt->script = NULL; - 2.45 set to null, better re-run the script */
 -							if (scpt->script) {
 -								scpt->script = newlibadr(fd, sc->id.lib, scpt->script);
 -								if (scpt->script) {
 -									SCRIPT_SET_NULL(scpt->script);
 -								}
 -							}
 -							break;
 -						}
 -						case SPACE_OUTLINER:
 -						{
 -							SpaceOops *so= (SpaceOops *)sl;
 -							so->search_tse.id = newlibadr(fd, NULL, so->search_tse.id);
 -
 -							if (so->treestore) {
 -								TreeStoreElem *tselem;
 -								BLI_mempool_iter iter;
 -
 -								BLI_mempool_iternew(so->treestore, &iter);
 -								while ((tselem = BLI_mempool_iterstep(&iter))) {
 -									tselem->id = newlibadr(fd, NULL, tselem->id);
 -								}
 -								if (so->treehash) {
 -									/* rebuild hash table, because it depends on ids too */
 -									so->storeflag |= SO_TREESTORE_REBUILD;
 -								}
 -							}
 -							break;
 -						}
 -						case SPACE_NODE:
 -						{
 -							SpaceNode *snode = (SpaceNode *)sl;
 -							bNodeTreePath *path, *path_next;
 -							bNodeTree *ntree;
 -
 -							/* node tree can be stored locally in id too, link this first */
 -							snode->id = newlibadr(fd, sc->id.lib, snode->id);
 -							snode->from = newlibadr(fd, sc->id.lib, snode->from);
 -
 -							ntree = snode->id ? ntreeFromID(snode->id) : NULL;
 -							snode->nodetree = ntree ? ntree : newlibadr_us(fd, sc->id.lib, snode->nodetree);
 -
 -							for (path = snode->treepath.first; path; path = path->next) {
 -								if (path == snode->treepath.first) {
 -									/* first nodetree in path is same as snode->nodetree */
 -									path->nodetree = snode->nodetree;
 -								}
 -								else
 -									path->nodetree = newlibadr_us(fd, sc->id.lib, path->nodetree);
 -
 -								if (!path->nodetree)
 -									break;
 -							}
 -
 -							/* remaining path entries are invalid, remove */
 -							for (; path; path = path_next) {
 -								path_next = path->next;
 -
 -								BLI_remlink(&snode->treepath, path);
 -								MEM_freeN(path);
 -							}
 -
 -							/* edittree is just the last in the path,
 -							 * set this directly since the path may have been shortened above */
 -							if (snode->treepath.last) {
 -								path = snode->treepath.last;
 -								snode->edittree = path->nodetree;
 -							}
 -							else {
 -								snode->edittree = NULL;
 -							}
 -							break;
 -						}
 -						case SPACE_CLIP:
 -						{
 -							SpaceClip *sclip = (SpaceClip *)sl;
 -
 -							sclip->clip = newlibadr_real_us(fd, sc->id.lib, sclip->clip);
 -							sclip->mask_info.mask = newlibadr_real_us(fd, sc->id.lib, sclip->mask_info.mask);
 -							break;
 -						}
 -						case SPACE_LOGIC:
 -						{
 -							SpaceLogic *slogic = (SpaceLogic *)sl;
 -
 -							slogic->gpd = newlibadr_us(fd, sc->id.lib, slogic->gpd);
 -							break;
 -						}
 -						default:
 -							break;
 -					}
 -				}
 +			for (ScrArea *area = sc->areabase.first; area; area = area->next) {
 +				lib_link_area(fd, &sc->id, area);
  			}
  			sc->id.tag &= ~LIB_TAG_NEED_LINK;
  		}
diff --cc source/blender/blenloader/intern/versioning_280.c
index 84aab78ff18,2f07ca43ff0..aef1621c93f
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -840,44 -869,58 +881,99 @@@ void blo_do_versions_280(FileData *fd, 
  		}
  	}
  
+ 	if (!MAIN_VERSION_ATLEAST(main, 280, 3)) {
+ 		for (Scene *scene = main->scene.first; scene; scene = scene->id.next) {
+ 			ViewLayer *view_layer;
+ 			for (view_layer = scene->view_layers.first; view_layer; view_layer = view_layer->next) {
+ 				do_version_view_layer_visibility(view_layer);
+ 			}
+ 		}
+ 
+ 		for (Group *group = main->group.first; group; group = group->id.next) {
+ 			if (group->view_layer != NULL){
+ 				do_version_view_layer_visibility(group->view_layer);
+ 			}
+ 		}
+ 	}
+ 
+ 	{
+ 		if (DNA_struct_elem_find(fd->filesdna, "SpaceOops", "int", "filter") == false) {
+ 			bScreen *sc;
+ 			ScrArea *sa;
+ 			SpaceLink *sl;
+ 
+ 			/* Update files using invalid (outdated) outlinevis Outliner values. */
+ 			for (sc = main->screen.first; sc; sc = sc->id.next) {
+ 				for (sa = sc->areabase.first; sa; sa = sa->next) {
+ 					for (sl = sa->spacedata.first; sl; sl = sl->next) {
+ 						if (sl->spacetype == SPACE_OUTLINER) {
+ 							SpaceOops *so = (SpaceOops *)sl;
+ 
+ 							if (!ELEM(so->outlinevis,
+ 									  SO_SCENES,
+ 									  SO_GROUPS,
+ 									  SO_LIBRARIES,
+ 									  SO_SEQUENCE,
+ 									  SO_DATABLOCKS,
+ 							          SO_ID_ORPHANS,
+ 							          SO_VIEW_LAYER,
+ 							          SO_COLLECTIONS))
+ 							{
+ 								so->outlinevis = SO_VIEW_LAYER;
+ 							}
+ 						}
+ 					}
+ 				}
+ 			}
+ 		}
+ 	}
+ 
+ 	{
+ 		if (!DNA_struct_elem_find(fd->filesdna, "LightProbe", "float", "intensity")) {
+ 			for (LightProbe *probe = main->lightprobe.first; probe; probe = probe->id.next) {
+ 				probe->intensity = 1.0f;
+ 			}
+ 		}
+ 	}
++
 +	if (!DNA_struct_find(fd->filesdna, "SpaceTopBar")) {
 +		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 (ELEM(sl->spacetype, SPACE_VIEW3D, SPACE_CLIP)) {
 +						ListBase *regionbase = (sl == sa->spacedata.first) ? &sa->regionbase : &sl->regionbase;
 +
 +						for (ARegion *region = regionbase->first, *region_next; region; region = region_next) {
 +							region_next = region->next;
 +
 +							if (region->regiontype == RGN_TYPE_TOOL_PROPS) {
 +								BKE_area_region_free(NULL, region);
 +								BLI_freelinkN(regionbase, region);
 +							}
 +						}
 +					}
 +				}
 +			}
 +		}
 +
 +		for (bScreen *screen = main->screen.first; screen; screen = screen->id.next) {
 +			for (ScrArea *area = screen->areabase.first, *area_next; area; area = area_next) {
 +				area_next = area->next;
 +
 +				if (area->spacetype == SPACE_INFO) {
 +					BKE_screen_area_free(area);
 +
 +					BLI_remlink(&screen->areabase, area);
 +
 +					BKE_screen_remove_double_scredges(screen);
 +					BKE_screen_remove_unused_scredges(screen);
 +					BKE_screen_remove_unused_scrverts(screen);
 +
 +					MEM_freeN(area);
 +				}
 +				/* AREA_TEMP_INFO is deprecated from now on, it should only be set for info areas
 +				 * which are deleted above, so don't need to unset it. Its slot/bit can be reused */
 +			}
 +		}
 +	}
  }
diff --cc source/blender/editors/include/ED_screen.h
index d931109b941,942292788fc..32e6ddf6f54
--- a/source/blender/editors/include/ED_screen.h
+++ b/source/blender/editors/include/ED_screen.h
@@@ -141,9 -125,10 +141,11 @@@ int     ED_region_global_size_y(void)
  
  /* screens */
  void    ED_screens_initialize(struct wmWindowManager *wm);
- void    ED_screen_draw(str

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list