Commit: 966fef9d34930a258ea58c9ea23743c5d56816a8 Author: Bastien Montagne Date: Tue Apr 10 18:24:09 2018 +0200 Branches: asset-engine https://developer.blender.org/rB966fef9d34930a258ea58c9ea23743c5d56816a8
Merge branch 'blender2.8' into asset-engine Conflicts: source/blender/blenloader/intern/readfile.c source/blender/makesrna/intern/rna_ID.c =================================================================== =================================================================== diff --cc release/scripts/startup/bl_ui/space_info.py index 54beb5ce4b7,cbe6449d1df..cb84085b8ae --- a/release/scripts/startup/bl_ui/space_info.py +++ b/release/scripts/startup/bl_ui/space_info.py @@@ -83,17 -84,8 +84,17 @@@ 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.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(workspace, context.view_layer), translate=False) + row.label(text=scene.statistics(context.view_layer), translate=False) class INFO_MT_editor_menus(Menu): diff --cc source/blender/blenloader/intern/readfile.c index 1f4a96ac43d,7ae8f0410c5..0d5467eb744 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@@ -8557,11 -8554,7 +8572,11 @@@ static BHead *read_libblock(FileData *f *r_id = id; if (!id) return blo_nextbhead(fd, bhead); -- - id->tag = tag | LIB_TAG_NEED_LINK; ++ +#ifdef DEBUG_LIBRARY + printf("id: %s (%p, %p), lib: %p\n", id->name, id, id->uuid, main->curlib); +#endif ++ id->lib = main->curlib; id->us = ID_FAKE_USERS(id); id->icon_id = 0; @@@ -8571,31 -8564,12 +8586,31 @@@ /* this case cannot be direct_linked: it's just the ID part */ if (bhead->code == ID_ID) { + /* That way, we know which datablock needs do_versions (required currently for linking). */ + id->tag = tag | LIB_TAG_NEED_LINK | LIB_TAG_NEW; + + if (id->uuid) { + /* read all data into fd->datamap */ + bhead = read_data_into_oldnewmap(fd, bhead, __func__); + + id->uuid = newdataadr(fd, id->uuid); + id->uuid->ibuff = NULL; /* Just in case... */ + id->uuid->width = id->uuid->height = 0; + + oldnewmap_free_unused(fd->datamap); + oldnewmap_clear(fd->datamap); + return bhead; + } + return blo_nextbhead(fd, bhead); } + + /* If we have a real ID from a virtual library, tag ID as extern. */ + if (id->lib && (id->lib->flag & LIBRARY_FLAG_VIRTUAL)) { + BLI_assert(ID_VIRTUAL_LIBRARY_VALID(id)); + id->tag |= LIB_TAG_EXTERN; + } - /* That way, we know which datablock needs do_versions (required currently for linking). */ - id->tag |= LIB_TAG_NEW; - /* need a name for the mallocN, just for debugging and sane prints on leaks */ allocname = dataname(GS(id->name)); diff --cc source/blender/makesrna/intern/rna_ID.c index 285a4957592,088b2b67af5..b0ecf93ce40 --- a/source/blender/makesrna/intern/rna_ID.c +++ b/source/blender/makesrna/intern/rna_ID.c @@@ -793,29 -793,14 +793,37 @@@ static int rna_ID_is_updated_data_get(P return ((data->recalc & ID_RECALC_ALL) != 0); } +static void rna_ID_asset_dependencies_begin(CollectionPropertyIterator *iter, PointerRNA *ptr) +{ + ID *id = ptr->data; + + if (id->uuid && id->lib) { + AssetRef *aref = BKE_library_asset_repository_asset_find(id->lib, id); + if (aref) { + rna_iterator_listbase_begin(iter, &aref->id_list, NULL); + return; + } + } + rna_iterator_listbase_begin(iter, NULL, NULL); +} + +static PointerRNA rna_ID_asset_dependencies_get(CollectionPropertyIterator *iter) +{ + ListBaseIterator *internal = &iter->internal.listbase; + PointerRNA ptr; + + RNA_id_pointer_create((ID *)((LinkData *)internal->link)->data, &ptr); + return ptr; +} + + static IDProperty *rna_IDPropertyWrapPtr_idprops(PointerRNA *ptr, bool UNUSED(create)) + { + if (ptr == NULL) { + return NULL; + } + return ptr->data; + } + #else static void rna_def_ID_properties(BlenderRNA *brna) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs