[Bf-blender-cvs] [7fe3d1e7d71] blender2.8: Fix T57934: non-empty duplicators don't render
Campbell Barton
noreply at git.blender.org
Tue Dec 11 05:05:14 CET 2018
Commit: 7fe3d1e7d718561e275f21acc7261207e67bf685
Author: Campbell Barton
Date: Tue Dec 11 15:02:58 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB7fe3d1e7d718561e275f21acc7261207e67bf685
Fix T57934: non-empty duplicators don't render
Convert non-empty duplicators to empties.
===================================================================
M source/blender/blenkernel/BKE_object.h
M source/blender/blenkernel/intern/object.c
M source/blender/blenloader/intern/versioning_280.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h
index ff069bcbe79..2ccee7a4a68 100644
--- a/source/blender/blenkernel/BKE_object.h
+++ b/source/blender/blenkernel/BKE_object.h
@@ -349,6 +349,8 @@ bool BKE_object_modifier_update_subframe(
struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob,
bool update_mesh, int parent_recursion, float frame, int type);
+void BKE_object_type_set_empty_for_versioning(struct Object *ob);
+
bool BKE_image_empty_visible_in_view3d(const struct Object *ob, const struct RegionView3D *rv3d);
#ifdef __cplusplus
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index b5dfb5d8244..9c166d154a3 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -4048,6 +4048,18 @@ bool BKE_object_modifier_update_subframe(
return false;
}
+
+void BKE_object_type_set_empty_for_versioning(Object *ob)
+{
+ ob->type = OB_EMPTY;
+ ob->data = NULL;
+ if (ob->pose) {
+ BKE_pose_free_ex(ob->pose, false);
+ ob->pose = NULL;
+ }
+ ob->mode = OB_MODE_OBJECT;
+}
+
bool BKE_image_empty_visible_in_view3d(const Object *ob, const RegionView3D *rv3d)
{
int visibility_flag = ob->empty_image_visibility_flag;
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index 9e6f64586ae..d10d86de2bc 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -2509,6 +2509,13 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
for (Camera *ca = bmain->camera.first; ca; ca = ca->id.next) {
ca->drawsize *= 2.0f;
}
+ for (Object *ob = bmain->object.first; ob; ob = ob->id.next) {
+ if (ob->type != OB_EMPTY) {
+ if (UNLIKELY(ob->transflag & OB_DUPLICOLLECTION)) {
+ BKE_object_type_set_empty_for_versioning(ob);
+ }
+ }
+ }
}
{
More information about the Bf-blender-cvs
mailing list