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

Julian Eisel noreply at git.blender.org
Thu Nov 16 02:49:52 CET 2017


Commit: f25f7fd9f1a651485041b1e60d55c51784075053
Author: Julian Eisel
Date:   Wed Nov 15 23:52:16 2017 +0100
Branches: topbar
https://developer.blender.org/rBf25f7fd9f1a651485041b1e60d55c51784075053

Merge branch 'blender2.8' into topbar

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



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

diff --cc source/blender/blenloader/intern/versioning_280.c
index 8923c011ccd,7ce7ef54040..4f693701a82
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@@ -52,14 -58,8 +58,9 @@@
  #include "BKE_node.h"
  #include "BKE_report.h"
  #include "BKE_scene.h"
 +#include "BKE_screen.h"
  #include "BKE_workspace.h"
  
- #include "BLI_listbase.h"
- #include "BLI_mempool.h"
- #include "BLI_string.h"
- #include "BLI_utildefines.h"
- 
  #include "BLO_readfile.h"
  #include "readfile.h"
  
diff --cc source/blender/blenloader/intern/writefile.c
index 9ad668fef4e,8751b580413..e059c4b0295
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@@ -2918,204 -2933,167 +2914,201 @@@ static void write_soops(WriteData *wd, 
  		writestruct(wd, DATA, SpaceOops, 1, so);
  	}
  }
 -
 -static void write_screen(WriteData *wd, bScreen *sc)
 +static void write_area_regions(WriteData *wd, ScrArea *area)
  {
 -	/* write LibData */
 -	/* in 2.50+ files, the file identifier for screens is patched, forward compatibility */
 -	writestruct(wd, ID_SCRN, bScreen, 1, sc);
 -	write_iddata(wd, &sc->id);
 +	for (ARegion *region = area->regionbase.first; region; region = region->next) {
 +		write_region(wd, region, area->spacetype);
  
 -	write_previews(wd, sc->preview);
 +		for (Panel *pa = region->panels.first; pa; pa = pa->next) {
 +			writestruct(wd, DATA, Panel, 1, pa);
 +		}
  
 -	/* direct data */
 -	for (ScrVert *sv = sc->vertbase.first; sv; sv = sv->next) {
 -		writestruct(wd, DATA, ScrVert, 1, sv);
 -	}
 +		for (PanelCategoryStack *pc_act = region->panels_category_active.first; pc_act; pc_act = pc_act->next) {
 +			writestruct(wd, DATA, PanelCategoryStack, 1, pc_act);
 +		}
  
 -	for (ScrEdge *se = sc->edgebase.first; se; se = se->next) {
 -		writestruct(wd, DATA, ScrEdge, 1, se);
 +		for (uiList *ui_list = region->ui_lists.first; ui_list; ui_list = ui_list->next) {
 +			write_uilist(wd, ui_list);
 +		}
 +
 +		for (uiPreview *ui_preview = region->ui_previews.first; ui_preview; ui_preview = ui_preview->next) {
 +			writestruct(wd, DATA, uiPreview, 1, ui_preview);
 +		}
  	}
  
 -	for (ScrArea *sa = sc->areabase.first; sa; sa = sa->next) {
 -		SpaceLink *sl;
 -		Panel *pa;
 -		uiList *ui_list;
 -		uiPreview *ui_preview;
 -		PanelCategoryStack *pc_act;
 -		ARegion *ar;
 +	for (SpaceLink *sl = area->spacedata.first; sl; sl = sl->next) {
 +		for (ARegion *region = sl->regionbase.first; region; region = region->next) {
 +			write_region(wd, region, sl->spacetype);
 +		}
  
 -		writestruct(wd, DATA, ScrArea, 1, sa);
 +		if (sl->spacetype == SPACE_VIEW3D) {
 +			View3D *v3d = (View3D *)sl;
 +			writestruct(wd, DATA, View3D, 1, v3d);
 +
 +			if (v3d->localvd) {
 +				writestruct(wd, DATA, View3D, 1, v3d->localvd);
 +			}
 +
 +			if (v3d->fx_settings.ssao) {
 +				writestruct(wd, DATA, GPUSSAOSettings, 1, v3d->fx_settings.ssao);
 +			}
 +			if (v3d->fx_settings.dof) {
 +				writestruct(wd, DATA, GPUDOFSettings, 1, v3d->fx_settings.dof);
 +			}
 +		}
 +		else if (sl->spacetype == SPACE_IPO) {
 +			SpaceIpo *sipo = (SpaceIpo *)sl;
 +			ListBase tmpGhosts = sipo->ghostCurves;
  
 -		for (ar = sa->regionbase.first; ar; ar = ar->next) {
 -			write_region(wd, ar, sa->spacetype);
 +			/* temporarily disable ghost curves when saving */
 +			sipo->ghostCurves.first = sipo->ghostCurves.last = NULL;
  
 -			for (pa = ar->panels.first; pa; pa = pa->next) {
 -				writestruct(wd, DATA, Panel, 1, pa);
 +			writestruct(wd, DATA, SpaceIpo, 1, sl);
 +			if (sipo->ads) {
 +				writestruct(wd, DATA, bDopeSheet, 1, sipo->ads);
  			}
  
 -			for (pc_act = ar->panels_category_active.first; pc_act; pc_act = pc_act->next) {
 -				writestruct(wd, DATA, PanelCategoryStack, 1, pc_act);
 +			/* reenable ghost curves */
 +			sipo->ghostCurves = tmpGhosts;
 +		}
 +		else if (sl->spacetype == SPACE_BUTS) {
 +			writestruct(wd, DATA, SpaceButs, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_FILE) {
 +			SpaceFile *sfile = (SpaceFile *)sl;
 +
 +			writestruct(wd, DATA, SpaceFile, 1, sl);
 +			if (sfile->params) {
 +				writestruct(wd, DATA, FileSelectParams, 1, sfile->params);
  			}
 +		}
 +		else if (sl->spacetype == SPACE_SEQ) {
 +			writestruct(wd, DATA, SpaceSeq, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_OUTLINER) {
 +			SpaceOops *so = (SpaceOops *)sl;
 +			write_soops(wd, so);
 +		}
 +		else if (sl->spacetype == SPACE_IMAGE) {
 +			writestruct(wd, DATA, SpaceImage, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_TEXT) {
 +			writestruct(wd, DATA, SpaceText, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_SCRIPT) {
 +			SpaceScript *scr = (SpaceScript *)sl;
 +			scr->but_refs = NULL;
 +			writestruct(wd, DATA, SpaceScript, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_ACTION) {
 +			writestruct(wd, DATA, SpaceAction, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_NLA) {
 +			SpaceNla *snla = (SpaceNla *)sl;
  
 -			for (ui_list = ar->ui_lists.first; ui_list; ui_list = ui_list->next) {
 -				write_uilist(wd, ui_list);
 +			writestruct(wd, DATA, SpaceNla, 1, snla);
 +			if (snla->ads) {
 +				writestruct(wd, DATA, bDopeSheet, 1, snla->ads);
  			}
 +		}
 +		else if (sl->spacetype == SPACE_TIME) {
 +			writestruct(wd, DATA, SpaceTime, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_NODE) {
 +			SpaceNode *snode = (SpaceNode *)sl;
 +			bNodeTreePath *path;
 +			writestruct(wd, DATA, SpaceNode, 1, snode);
  
 -			for (ui_preview = ar->ui_previews.first; ui_preview; ui_preview = ui_preview->next) {
 -				writestruct(wd, DATA, uiPreview, 1, ui_preview);
 +			for (path = snode->treepath.first; path; path = path->next) {
 +				writestruct(wd, DATA, bNodeTreePath, 1, path);
  			}
  		}
 +		else if (sl->spacetype == SPACE_LOGIC) {
 +			writestruct(wd, DATA, SpaceLogic, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_CONSOLE) {
 +			SpaceConsole *con = (SpaceConsole *)sl;
 +			ConsoleLine *cl;
  
 -		for (sl = sa->spacedata.first; sl; sl = sl->next) {
 -			for (ar = sl->regionbase.first; ar; ar = ar->next) {
 -				write_region(wd, ar, sl->spacetype);
 +			for (cl = con->history.first; cl; cl = cl->next) {
 +				/* 'len_alloc' is invalid on write, set from 'len' on read */
 +				writestruct(wd, DATA, ConsoleLine, 1, cl);
 +				writedata(wd, DATA, cl->len + 1, cl->line);
  			}
 +			writestruct(wd, DATA, SpaceConsole, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_TOPBAR) {
 +			writestruct(wd, DATA, SpaceTopBar, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_USERPREF) {
 +			writestruct(wd, DATA, SpaceUserPref, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_CLIP) {
 +			writestruct(wd, DATA, SpaceClip, 1, sl);
 +		}
 +		else if (sl->spacetype == SPACE_INFO) {
 +			writestruct(wd, DATA, SpaceInfo, 1, sl);
 +		}
 +	}
 +}
  
 -			if (sl->spacetype == SPACE_VIEW3D) {
 -				View3D *v3d = (View3D *)sl;
 -				writestruct(wd, DATA, View3D, 1, v3d);
 +static void write_global_areas(WriteData *wd, ListBase *areas)
 +{
 +	for (ScrArea *area = areas->first; area; area = area->next) {
 +		writestruct(wd, DATA, ScrArea, 1, area);
  
 -				if (v3d->localvd) {
 -					writestruct(wd, DATA, View3D, 1, v3d->localvd);
 -				}
 +		writestruct(wd, DATA, ScrVert, 1, area->v1);
 +		writestruct(wd, DATA, ScrVert, 1, area->v2);
 +		writestruct(wd, DATA, ScrVert, 1, area->v3);
 +		writestruct(wd, DATA, ScrVert, 1, area->v4);
  
 -				if (v3d->fx_settings.ssao) {
 -					writestruct(wd, DATA, GPUSSAOSettings, 1, v3d->fx_settings.ssao);
 -				}
 -				if (v3d->fx_settings.dof) {
 -					writestruct(wd, DATA, GPUDOFSettings, 1, v3d->fx_settings.dof);
 -				}
 -			}
 -			else if (sl->spacetype == SPACE_IPO) {
 -				SpaceIpo *sipo = (SpaceIpo *)sl;
 -				ListBase tmpGhosts = sipo->ghostCurves;
 +		write_area_regions(wd, area);
 +	}
 +}
  
 -				/* temporarily disable ghost curves when saving */
 -				sipo->ghostCurves.first = sipo->ghostCurves.last = NULL;
 +static void write_windowmanager(WriteData *wd, wmWindowManager *wm)
 +{
 +	writestruct(wd, ID_WM, wmWindowManager, 1, wm);
 +	write_iddata(wd, &wm->id);
  
 -				writestruct(wd, DATA, SpaceIpo, 1, sl);
 -				if (sipo->ads) {
 -					writestruct(wd, DATA, bDopeSheet, 1, sipo->ads);
 -				}
 +	for (wmWindow *win = wm->windows.first; win; win = win->next) {
  
 -				/* reenable ghost curves */
 -				sipo->ghostCurves = tmpGhosts;
 -			}
 -			else if (sl->spacetype == SPACE_BUTS) {
 -				writestruct(wd, DATA, SpaceButs, 1, sl);
 -			}
 -			else if (sl->spacetype == SPACE_FILE) {
 -				SpaceFile *sfile = (SpaceFile *)sl;
 +		/* update deprecated screen member (for so loading in 2.7x uses the correct screen) */
 +		win->screen = BKE_workspace_active_screen_get(win->workspace_hook);
- 		if (win->screen) {
- 			BLI_strncpy(win->screenname, win->screen->id.name + 2, sizeof(win->screenname));
- 		}
  
 -				writestruct(wd, DATA, SpaceFile, 1, sl);
 -				if (sfile->params) {
 -					writestruct(wd, DATA, FileSelectParams, 1, sfile->params);
 -				}
 -			}
 -			else if (sl->spacetype == SPACE_SEQ) {
 -				writestruct(wd, DATA, SpaceSeq, 1, sl);
 -			}
 -			else if (sl->spacetype == SPACE_OUTLINER) {
 -				SpaceOops *so = (SpaceOops *)sl;
 -				write_soops(wd, so);
 -			}
 -			else if (sl->spacetype == SPACE_IMAGE) {
 -				writestruct(wd, DATA, SpaceImage, 1, sl);
 -			}
 -			else if (sl->spacetype == SPACE_TEXT) {
 -				writestruct(wd, DATA, SpaceText, 1, sl);
 -			}
 -			else if (sl->spacetype == SPACE_SCRIPT) {
 -				SpaceScript *scr = (SpaceScript *)sl;
 -				scr->but_refs = NULL;
 -				writestruct(wd, DATA, SpaceScript, 1, sl);
 -			}
 -			else if (sl->spacetype == SPACE_ACTION) {
 -				writestruct(wd, DATA, SpaceAction, 1, sl);
 -			}
 -			else if (sl->spacetype == SPACE_NLA) {
 -				SpaceNla *snla = (SpaceNla *)sl;
 +		writestruct(wd, DATA, wmWindow, 1, win);
 +		writestruct(wd, DATA, WorkSpaceInstanceHook, 1, win->workspace_hook);
 +		writestruct(wd, DATA, Stereo3dFormat, 1, win->stereo3d_format);
  
 -				writestruct(wd, DATA, SpaceNla, 1, snla);
 -				if (snla->ads) {
 -					writestruct(wd, DATA, bDopeSheet, 1, snla->ads);
 -				}
 -			}
 -			else if (sl->spacetype == SPACE_TIME) {
 -				writestruct(wd, DATA, SpaceTime, 1, sl);
 -			}
 -			else if (sl->spacetype == S

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list