[Bf-blender-cvs] [a571bee4af6] asset-engine: Merge branch 'id_override_static' into asset-engine

Bastien Montagne noreply at git.blender.org
Wed Nov 29 19:56:22 CET 2017


Commit: a571bee4af66461826cbdb4feac45f3ed09665a2
Author: Bastien Montagne
Date:   Wed Nov 29 19:55:47 2017 +0100
Branches: asset-engine
https://developer.blender.org/rBa571bee4af66461826cbdb4feac45f3ed09665a2

Merge branch 'id_override_static' into asset-engine

Conflicts:
	source/blender/blenloader/BLO_readfile.h
	source/blender/blenloader/intern/readfile.c
	source/blender/makesdna/DNA_ID.h
	source/blender/windowmanager/intern/wm_files_link.c

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



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

diff --cc release/scripts/startup/bl_ui/space_info.py
index ce1b6ec9e69,8c7fcb29ad2..7f3507f9db0
--- a/release/scripts/startup/bl_ui/space_info.py
+++ b/release/scripts/startup/bl_ui/space_info.py
@@@ -85,18 -85,8 +85,18 @@@ class INFO_HT_header(Header)
              row.label(bpy.app.autoexec_fail_message)
              return
  
 +        if (bpy.app.assets_fail or bpy.app.assets_need_reload) and not bpy.app.assets_quiet:
 +            row.operator("script.assets_warn_clear", text="Ignore")
 +            if bpy.app.assets_need_reload is True and bpy.app.assets_quiet is False:
 +                #~ row.label(icon='SCREEN_BACK', text="Reload Assets")
 +                row.operator("wm.assets_reload", icon='SCREEN_BACK', text="Reload Assets")
 +                row.label("Some assets have to be reloaded", icon='INFO')
 +            if bpy.app.assets_fail is True and bpy.app.assets_quiet is False:
 +                row.label("Some asset engine(s) failed to retrieve updated data about their assets...", icon='ERROR')
 +            return
 +
          row.operator("wm.splash", text="", icon='BLENDER', emboss=False)
-         row.label(text=scene.statistics(context.render_layer), translate=False)
+         row.label(text=scene.statistics(context.view_layer), translate=False)
  
  
  class INFO_MT_editor_menus(Menu):
diff --cc source/blender/blenkernel/intern/library_remap.c
index 24bab5e2dad,a3376dff98c..69bb26b8cd6
--- a/source/blender/blenkernel/intern/library_remap.c
+++ b/source/blender/blenkernel/intern/library_remap.c
@@@ -746,14 -746,10 +746,14 @@@ void BKE_libblock_free_data(ID *id, con
  		MEM_freeN(id->properties);
  	}
  
- 	if (id->override) {
- 		BKE_override_free(&id->override);
+ 	if (id->override_static) {
+ 		BKE_override_static_free(&id->override_static);
  	}
  
 +	if (id->uuid) {
 +		MEM_freeN(id->uuid);
 +	}
 +
  	/* XXX TODO remove animdata handling from each type's freeing func, and do it here, like for copy! */
  }
  
diff --cc source/blender/blenloader/BLO_readfile.h
index 0bac52afc36,00d00e98c84..f9beff7a871
--- a/source/blender/blenloader/BLO_readfile.h
+++ b/source/blender/blenloader/BLO_readfile.h
@@@ -126,15 -124,9 +126,15 @@@ struct ID *BLO_library_link_named_part(
  struct ID *BLO_library_link_named_part_ex(
          struct Main *mainl, BlendHandle **bh,
          const short idcode, const char *name, const short flag,
-         struct Scene *scene, struct SceneLayer *scene_layer,
+         struct Scene *scene, struct ViewLayer *view_layer,
          const bool use_placeholders, const bool force_indirect);
 -void BLO_library_link_end(struct Main *mainl, BlendHandle **bh, short flag, struct Scene *scene, struct ViewLayer *view_layer);
 +struct ID *BLO_library_link_named_part_asset(
 +        struct Main *mainl, BlendHandle **bh, const struct AssetEngineType *aet, const char *root,
 +        const short idcode, const char *name, const struct AssetUUID *uuid, const short flag,
-         struct Scene *scene, struct SceneLayer *scene_layer,
++        struct Scene *scene, struct ViewLayer *view_layer,
 +        const bool use_placeholders, const bool force_indirect);
 +void BLO_library_link_end(
-         struct Main *mainl, BlendHandle **bh, short flag, struct Scene *scene, struct SceneLayer *scene_layer);
++        struct Main *mainl, BlendHandle **bh, short flag, struct Scene *scene, struct ViewLayer *view_layer);
  
  void BLO_library_link_copypaste(struct Main *mainl, BlendHandle *bh);
  
diff --cc source/blender/blenloader/intern/readfile.c
index 82fa166ae95,2d885fcec17..933f29db350
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@@ -2265,16 -2262,10 +2265,16 @@@ static void direct_link_id(FileData *fd
  	id->py_instance = NULL;
  
  	/* Link direct data of overrides. */
- 	if (id->override) {
- 		id->override = newdataadr(fd, id->override);
- 		link_list_ex(fd, &id->override->properties, direct_link_id_override_property_cb);
+ 	if (id->override_static) {
+ 		id->override_static = newdataadr(fd, id->override_static);
+ 		link_list_ex(fd, &id->override_static->properties, direct_link_id_override_property_cb);
  	}
 +
 +	if (id->uuid) {
 +		id->uuid = newdataadr(fd, id->uuid);
 +		id->uuid->ibuff = NULL;  /* Just in case... */
 +		id->uuid->width = id->uuid->height = 0;
 +	}
  }
  
  /* ************ READ CurveMapping *************** */
@@@ -10440,10 -10428,8 +10466,10 @@@ void BLO_library_link_copypaste(Main *m
  }
  
  static ID *link_named_part_ex(
 -        Main *mainl, FileData *fd, const short idcode, const char *name, const short flag,
 -        Scene *scene, ViewLayer *view_layer, const bool use_placeholders, const bool force_indirect)
 +        Main *mainl, FileData *fd, const AssetEngineType *aet, const char *root,
 +        const short idcode, const char *name, const AssetUUID *uuid, const short flag,
-         Scene *scene, SceneLayer *scene_layer,
++        Scene *scene, ViewLayer *view_layer,
 +        const bool use_placeholders, const bool force_indirect)
  {
  	ID *id = link_named_part(mainl, fd, idcode, name, use_placeholders, force_indirect);
  
@@@ -10510,34 -10482,7 +10536,35 @@@ ID *BLO_library_link_named_part_ex
          const bool use_placeholders, const bool force_indirect)
  {
  	FileData *fd = (FileData*)(*bh);
 -	return link_named_part_ex(mainl, fd, idcode, name, flag, scene, view_layer, use_placeholders, force_indirect);
 +	return link_named_part_ex(
- 	            mainl, fd, NULL, NULL, idcode, name, NULL, flag, scene, scene_layer, use_placeholders, force_indirect);
++	            mainl, fd, NULL, NULL, idcode, name, NULL, flag, scene, view_layer, use_placeholders, force_indirect);
 +}
 +
 +/**
 + * Link a named datablock from an external blend file, using given asset engine & asset UUID.
 + * Optionally instantiate the object/group in the scene when the flags are set.
 + *
 + * \param mainl The main database to link from (not the active one).
 + * \param bh The blender file handle.
 + * \param aet The asset engine type (NULL when no asset engine is used).
 + * \param root the 'path' of the asset repository.
 + * \param idcode The kind of datablock to link.
 + * \param name The name of the datablock (without the 2 char ID prefix).
 + * \param uuid The asset engine's UUID of this datablock (NULL when no asset engine is used).
 + * \param flag Options for linking, used for instantiating.
 + * \param scene The scene in which to instantiate objects/groups (if NULL, no instantiation is done).
 + * \param sl The active SceneLayer (where objects & groups would be instantiated, can be NULL).
 + * \return the linked ID when found.
 + */
 +struct ID *BLO_library_link_named_part_asset(
 +        Main *mainl, BlendHandle **bh, const AssetEngineType *aet, const char *root,
 +        const short idcode, const char *name, const AssetUUID *uuid, const short flag,
-         Scene *scene, SceneLayer *scene_layer,
++        Scene *scene, ViewLayer *view_layer,
 +        const bool use_placeholders, const bool force_indirect)
 +{
 +	FileData *fd = (FileData*)(*bh);
- 	return link_named_part_ex(mainl, fd, aet, root, idcode, name, uuid, flag, scene, scene_layer, use_placeholders, force_indirect);
++	return link_named_part_ex(
++	            mainl, fd, aet, root, idcode, name, uuid, flag, scene, view_layer, use_placeholders, force_indirect);
  }
  
  static void link_id_part(ReportList *reports, FileData *fd, Main *mainvar, ID *id, ID **r_id)
diff --cc source/blender/blenloader/intern/writefile.c
index 47f2de524a8,30ca75d7da4..c1c00cd49ce
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@@ -682,25 -682,18 +682,25 @@@ static void write_iddata(void *wd, cons
  {
  	/* ID_WM's id->properties are considered runtime only, and never written in .blend file. */
  	if (id->properties && !ELEM(GS(id->name), ID_WM)) {
 -		IDP_WriteProperty(id->properties, wd);
 +		/* We want to write IDProps from 'virtual' libraries too, but not from 'real' linked datablocks... */
 +		if (!id->uuid || (id->lib && (id->lib->flag & LIBRARY_FLAG_VIRTUAL))) {
 +			IDP_WriteProperty(id->properties, wd);
 +		}
 +	}
 +	if (id->uuid) {
 +		BLI_assert(id->lib && id->lib->asset_repository);
 +		writestruct(wd, DATA, AssetUUID, 1, id->uuid);
  	}
  
- 	if (id->override) {
- 		writestruct(wd, DATA, IDOverride, 1, id->override);
+ 	if (id->override_static) {
+ 		writestruct(wd, DATA, IDOverrideStatic, 1, id->override_static);
  
- 		writelist(wd, DATA, IDOverrideProperty, &id->override->properties);
- 		for (IDOverrideProperty *op = id->override->properties.first; op; op = op->next) {
+ 		writelist(wd, DATA, IDOverrideStaticProperty, &id->override_static->properties);
+ 		for (IDOverrideStaticProperty *op = id->override_static->properties.first; op; op = op->next) {
  			writedata(wd, DATA, strlen(op->rna_path) + 1, op->rna_path);
  
- 			writelist(wd, DATA, IDOverridePropertyOperation, &op->operations);
- 			for (IDOverridePropertyOperation *opop = op->operations.first; opop; opop = opop->next) {
+ 			writelist(wd, DATA, IDOverrideStaticPropertyOperation, &op->operations);
+ 			for (IDOverrideStaticPropertyOperation *opop = op->operations.first; opop; opop = opop->next) {
  				if (opop->subitem_reference_name) {
  					writedata(wd, DATA, strlen(opop->subitem_reference_name) + 1, opop->subitem_reference_name);
  				}
diff --cc source/blender/makesdna/DNA_ID.h
index 134370d2be8,4e1161148ea..253058aad63
--- a/source/blender/makesdna/DNA_ID.h
+++ b/source/blender/makesdna/DNA_ID.h
@@@ -115,10 -115,11 +115,10 @@@ enum 
  
  /* add any future new id property types here.*/
  
 -
  /* Static ID override structs. */
  
- typedef struct IDOverridePropertyOperation {
- 	struct IDOverridePropertyOperation *next, *prev;
+ typedef struct IDOverrideStaticPropertyOperation {
+ 	struct IDOverrideStaticPropertyOperation *next, *prev;
  
  	/* Type of override. */
  	short operation;
@@@ -179,60 -182,9 +181,57 @@@ typedef struct IDOverrideStatic 
  	/* Temp ID storing extra override data (used for differential operations only currently).
  	 * Always NULL outside of read/write context. */
  	struct ID *storage;
- 
- 	/* Runtime data. */
- 	double last_auto_run;  /*

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list