15 #define DNA_DEPRECATED_ALLOW
41 Object *ob_proxy_group = ob_proxy->proxy_group;
42 const bool is_override_instancing_object = (ob_proxy_group !=
NULL) &&
46 ID *id_instance_hint = is_override_instancing_object ? &ob_proxy_group->
id : &ob_proxy->
id;
51 if (ob_proxy->proxy !=
NULL) {
52 ob_proxy->proxy->proxy_from =
NULL;
55 ob_proxy->proxy = ob_proxy->proxy_group =
NULL;
64 ob_proxy->proxy->
id.
newid = &ob_proxy->
id;
68 ob_proxy->proxy->proxy_from =
NULL;
69 ob_proxy->proxy = ob_proxy->proxy_group =
NULL;
86 bmain,
scene, view_layer, ob_proxy->
id.
lib, id_root, id_root, id_instance_hint,
NULL,
false);
94 Object *ob_proxy_group = ob_proxy->proxy_group;
95 const bool is_override_instancing_object = ob_proxy_group !=
NULL;
102 "Proxy object '%s' successfully converted to library overrides",
106 if (is_override_instancing_object) {
119 if (object->proxy_group !=
NULL) {
126 if (object->proxy !=
NULL && object->proxy_group ==
NULL) {
132 for (
LinkNode *proxy_object_iter = proxy_objects.
list; proxy_object_iter !=
NULL;
133 proxy_object_iter = proxy_object_iter->next) {
134 Object *proxy_object = proxy_object_iter->link;
142 if (object->proxy_group !=
NULL || object->proxy !=
NULL) {
145 "Linked proxy object '%s' from '%s' failed to be converted to library override",
147 object->id.lib->filepath);
151 "Proxy object '%s' failed to be converted to library override",
152 object->id.name + 2);
155 if (object->proxy !=
NULL) {
156 object->proxy->proxy_from =
NULL;
159 object->proxy =
object->proxy_group =
NULL;
#define FOREACH_SCENE_OBJECT_END
bool BKE_scene_collections_object_remove(struct Main *bmain, struct Scene *scene, struct Object *object, bool free_us)
#define FOREACH_SCENE_OBJECT_BEGIN(scene, _instance)
void id_us_min(struct ID *id)
struct IDOverrideLibrary * BKE_lib_override_library_init(struct ID *local_id, struct ID *reference_id)
bool BKE_lib_override_library_create(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct Library *owner_library, struct ID *id_root_reference, struct ID *id_hierarchy_root_reference, struct ID *id_instance_hint, struct ID **r_id_root_override, const bool do_fully_editable)
#define FOREACH_MAIN_ID_END
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
void BLI_linklist_free(LinkNode *list, LinkNodeFreeFP freefunc)
void void void void BLI_linklist_append(LinkNodePair *list_pair, void *ptr) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
external readfile function prototypes.
#define CLOG_WARN(clg_ref,...)
#define CLOG_INFO(clg_ref, level,...)
void DEG_id_tag_update(struct ID *id, int flag)
ID and Library types, which are fundamental for sdna.
@ ID_RECALC_COPY_ON_WRITE
#define ID_IS_OVERRIDABLE_LIBRARY_HIERARCHY(_id)
#define ID_IS_LINKED(_id)
@ IDOVERRIDE_LIBRARY_FLAG_SYSTEM_DEFINED
Object groups, one object can be in many groups at once.
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
bool BKE_lib_override_library_proxy_convert(Main *bmain, Scene *scene, ViewLayer *view_layer, Object *ob_proxy)
void BKE_lib_override_library_main_proxy_convert(Main *bmain, BlendFileReadReport *reports)
static void lib_override_library_proxy_convert_do(Main *bmain, Scene *scene, Object *ob_proxy, BlendFileReadReport *reports)
int proxies_to_lib_overrides_failures
struct BlendFileReadReport::@134 count
int proxies_to_lib_overrides_success
IDOverrideLibrary * override_library
struct Collection * instance_collection