[Bf-blender-cvs] [93712fed2cc] asset-engine: Merge branch 'master' into asset-engine

Bastien Montagne noreply at git.blender.org
Sun Jan 6 17:29:05 CET 2019


Commit: 93712fed2cc72fcae1fb0409be02aa7837f25764
Author: Bastien Montagne
Date:   Sun Jan 6 17:27:42 2019 +0100
Branches: asset-engine
https://developer.blender.org/rB93712fed2cc72fcae1fb0409be02aa7837f25764

Merge branch 'master' into asset-engine

Rather painful, too much cleanup/renamings in between...

Note that this is not currently functionnal, builds but does not show
AEs in filebrowser selector for some reason. No time to track that now.

Conflicts:
	source/blender/blenkernel/intern/library.c
	source/blender/blenloader/BLO_readfile.h
	source/blender/blenloader/intern/readfile.c
	source/blender/blenloader/intern/versioning_defaults.c
	source/blender/editors/space_file/filelist.c
	source/blender/editors/space_file/filelist.h
	source/blender/editors/space_outliner/outliner_draw.c
	source/blender/editors/space_script/script_edit.c
	source/blender/editors/space_script/script_intern.h
	source/blender/editors/space_script/script_ops.c
	source/blender/makesrna/intern/rna_internal.h
	source/blender/windowmanager/intern/wm_files.c
	source/blender/windowmanager/intern/wm_files_link.c

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



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

diff --cc source/blender/blenkernel/BKE_library.h
index 334fcec16a5,a4eb40cbb38..4874c0e53a8
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@@ -214,23 -195,11 +197,26 @@@ void BKE_library_make_local
  void BKE_id_tag_set_atomic(struct ID *id, int tag);
  void BKE_id_tag_clear_atomic(struct ID *id, int tag);
  
- bool BKE_id_is_in_gobal_main(struct ID *id);
+ bool BKE_id_is_in_global_main(struct ID *id);
+ 
+ void BKE_id_ordered_list(struct ListBase *ordered_lb, const struct ListBase *lb);
+ void BKE_id_reorder(const struct ListBase *lb, struct ID *id, struct ID *relative, bool after);
  
 +void BKE_library_asset_repository_init(struct Library *lib, const struct AssetEngineType *aet, const char *repo_root);
 +void BKE_library_asset_repository_clear(struct Library *lib);
 +void BKE_library_asset_repository_free(struct Library *lib);
 +struct AssetRef *BKE_library_asset_repository_asset_add(struct Library *lib, const void *idv);
 +void BKE_library_asset_repository_asset_remove(struct Library *lib, const void *idv);
 +struct AssetRef *BKE_library_asset_repository_asset_find(struct Library *lib, const void *idv);
 +void BKE_library_asset_repository_subdata_add(struct AssetRef *aref, const void *idv);
 +void BKE_library_asset_repository_subdata_remove(struct AssetRef *aref, const void *idv);
 +
 +void BKE_libraries_asset_subdata_remove(struct Main *bmain, const void *idv);
 +void BKE_libraries_asset_repositories_clear(struct Main *bmain);
 +void BKE_libraries_asset_repositories_rebuild(struct Main *bmain);
 +struct AssetRef *BKE_libraries_asset_repository_uuid_find(struct Main *bmain, const struct AssetUUID *uuid);
 +struct Library *BKE_library_asset_virtual_ensure(struct Main *bmain, const struct AssetEngineType *aet);
 +
  /* use when "" is given to new_id() */
  #define ID_FALLBACK_NAME N_("Untitled")
  
diff --cc source/blender/blenkernel/intern/library.c
index 59d1f3dd712,7634f1e0434..1d448e48793
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@@ -1521,258 -1405,8 +1409,10 @@@ void BKE_library_free(Library *lib
  {
  	if (lib->packedfile)
  		freePackedFile(lib->packedfile);
 +
 +	BKE_library_asset_repository_free(lib);
  }
  
- Main *BKE_main_new(void)
- {
- 	Main *bmain = MEM_callocN(sizeof(Main), "new main");
- 	bmain->lock = MEM_mallocN(sizeof(SpinLock), "main lock");
- 	BLI_spin_init((SpinLock *)bmain->lock);
- 	return bmain;
- }
- 
- void BKE_main_free(Main *mainvar)
- {
- 	/* also call when reading a file, erase all, etc */
- 	ListBase *lbarray[MAX_LIBARRAY];
- 	int a;
- 
- 	MEM_SAFE_FREE(mainvar->blen_thumb);
- 
- 	a = set_listbasepointers(mainvar, lbarray);
- 	while (a--) {
- 		ListBase *lb = lbarray[a];
- 		ID *id;
- 
- 		while ( (id = lb->first) ) {
- #if 1
- 			BKE_libblock_free_ex(mainvar, id, false, false);
- #else
- 			/* errors freeing ID's can be hard to track down,
- 			 * enable this so valgrind will give the line number in its error log */
- 			switch (a) {
- 				case   0: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   1: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   2: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   3: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   4: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   5: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   6: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   7: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   8: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case   9: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  10: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  11: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  12: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  13: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  14: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  15: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  16: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  17: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  18: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  19: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  20: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  21: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  22: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  23: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  24: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  25: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  26: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  27: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  28: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  29: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  30: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  31: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  32: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  33: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				case  34: BKE_libblock_free_ex(mainvar, id, false, false); break;
- 				default:
- 					BLI_assert(0);
- 					break;
- 			}
- #endif
- 		}
- 	}
- 
- 	if (mainvar->relations) {
- 		BKE_main_relations_free(mainvar);
- 	}
- 
- 	BLI_spin_end((SpinLock *)mainvar->lock);
- 	MEM_freeN(mainvar->lock);
- 	MEM_freeN(mainvar);
- }
- 
- void BKE_main_lock(struct Main *bmain)
- {
- 	BLI_spin_lock((SpinLock *) bmain->lock);
- }
- 
- void BKE_main_unlock(struct Main *bmain)
- {
- 	BLI_spin_unlock((SpinLock *) bmain->lock);
- }
- 
- 
- static int main_relations_create_cb(void *user_data, ID *id_self, ID **id_pointer, int cb_flag)
- {
- 	MainIDRelations *rel = user_data;
- 
- 	if (*id_pointer) {
- 		MainIDRelationsEntry *entry, **entry_p;
- 
- 		entry = BLI_mempool_alloc(rel->entry_pool);
- 		if (BLI_ghash_ensure_p(rel->id_user_to_used, id_self, (void ***)&entry_p)) {
- 			entry->next = *entry_p;
- 		}
- 		else {
- 			entry->next = NULL;
- 		}
- 		entry->id_pointer = id_pointer;
- 		entry->usage_flag = cb_flag;
- 		*entry_p = entry;
- 
- 		entry = BLI_mempool_alloc(rel->entry_pool);
- 		if (BLI_ghash_ensure_p(rel->id_used_to_user, *id_pointer, (void ***)&entry_p)) {
- 			entry->next = *entry_p;
- 		}
- 		else {
- 			entry->next = NULL;
- 		}
- 		entry->id_pointer = (ID **)id_self;
- 		entry->usage_flag = cb_flag;
- 		*entry_p = entry;
- 	}
- 
- 	return IDWALK_RET_NOP;
- }
- 
- /** Generate the mappings between used IDs and their users, and vice-versa. */
- void BKE_main_relations_create(Main *bmain)
- {
- 	ListBase *lbarray[MAX_LIBARRAY];
- 	ID *id;
- 	int a;
- 
- 	if (bmain->relations != NULL) {
- 		BKE_main_relations_free(bmain);
- 	}
- 
- 	bmain->relations = MEM_mallocN(sizeof(*bmain->relations), __func__);
- 	bmain->relations->id_used_to_user = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, __func__);
- 	bmain->relations->id_user_to_used = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, __func__);
- 	bmain->relations->entry_pool = BLI_mempool_create(sizeof(MainIDRelationsEntry), 128, 128, BLI_MEMPOOL_NOP);
- 
- 	for (a = set_listbasepointers(bmain, lbarray); a--; ) {
- 		for (id = lbarray[a]->first; id; id = id->next) {
- 			BKE_library_foreach_ID_link(NULL, id, main_relations_create_cb, bmain->relations, IDWALK_READONLY);
- 		}
- 	}
- }
- 
- void BKE_main_relations_free(Main *bmain)
- {
- 	if (bmain->relations) {
- 		if (bmain->relations->id_used_to_user) {
- 			BLI_ghash_free(bmain->relations->id_used_to_user, NULL, NULL);
- 		}
- 		if (bmain->relations->id_user_to_used) {
- 			BLI_ghash_free(bmain->relations->id_user_to_used, NULL, NULL);
- 		}
- 		BLI_mempool_destroy(bmain->relations->entry_pool);
- 		MEM_freeN(bmain->relations);
- 		bmain->relations = NULL;
- 	}
- }
- 
- /**
-  * Generates a raw .blend file thumbnail data from given image.
-  *
-  * \param bmain If not NULL, also store generated data in this Main.
-  * \param img ImBuf image to generate thumbnail data from.
-  * \return The generated .blend file raw thumbnail data.
-  */
- BlendThumbnail *BKE_main_thumbnail_from_imbuf(Main *bmain, ImBuf *img)
- {
- 	BlendThumbnail *data = NULL;
- 
- 	if (bmain) {
- 		MEM_SAFE_FREE(bmain->blen_thumb);
- 	}
- 
- 	if (img) {
- 		const size_t sz = BLEN_THUMB_MEMSIZE(img->x, img->y);
- 		data = MEM_mallocN(sz, __func__);
- 
- 		IMB_rect_from_float(img);  /* Just in case... */
- 		data->width = img->x;
- 		data->height = img->y;
- 		memcpy(data->rect, img->rect, sz - sizeof(*data));
- 	}
- 
- 	if (bmain) {
- 		bmain->blen_thumb = data;
- 	}
- 	return data;
- }
- 
- /**
-  * Generates an image from raw .blend file thumbnail \a data.
-  *
-  * \param bmain Use this bmain->blen_thumb data if given \a data is NULL.
-  * \param data Raw .blend file thumbnail data.
-  * \return An ImBuf from given data, or NULL if invalid.
-  */
- ImBuf *BKE_main_thumbnail_to_imbuf(Main *bmain, BlendThumbnail *data)
- {
- 	ImBuf *img = NULL;
- 
- 	if (!data && bmain) {
- 		data = bmain->blen_thumb;
- 	}
- 
- 	if (data) {
- 		/* Note: we cannot use IMB_allocFromBuffer(), since it tries to dupalloc passed buffer, which will fail
- 		 *       here (we do not want to pass the first two ints!). */
- 		img = IMB_allocImBuf((unsigned int)data->width, (unsigned int)data->height, 32, IB_rect | IB_metadata);
- 		memcpy(img->rect, data->rect, BLEN_THUMB_MEMSIZE(data->width, data->height) - sizeof(*data));
- 	}
- 
- 	return img;
- }
- 
- /**
-  * Generates an empty (black) thumbnail for given Main.
-  */
- void BKE_main_thumbnail_create(struct Main *bmain)
- {
- 	MEM_SAFE_FREE(bmain->blen_thumb);
- 
- 	bmain->blen_thumb = MEM_callocN(BLEN_THUMB_MEMSIZE(BLEN_THUMB_SIZE, BLEN_THUMB_SIZE), __func__);
- 	bmain->blen_thumb->width = BLEN_THUMB_SIZE;
- 	bmain->blen_thumb->height = BLEN_THUMB_SIZE;
- }
- 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list