Commit: 5d7952d9c75d087b551ab95dff90ee2f7f636417
Author: Brecht Van Lommel
Date:   Fri Apr 6 10:32:18 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB5d7952d9c75d087b551ab95dff90ee2f7f636417

Python API: remove object.dupli_list_create and dupli_list_clear.

Cycles is no longer using this. There are still addons using it but for
correct results with the new depsgraph this API should not be used.

Differential Revision: https://developer.blender.org/D3143

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

M       source/blender/blenloader/intern/readfile.c
M       source/blender/makesdna/DNA_object_types.h
M       source/blender/makesrna/intern/rna_object.c
M       source/blender/makesrna/intern/rna_object_api.c

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

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index a76350b23c9..39ff8816cdb 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -4963,7 +4963,6 @@ static void lib_link_object(FileData *fd, Main *main)
                        }
                        
                        ob->gpd = newlibadr_us(fd, ob->id.lib, ob->gpd);
-                       ob->duplilist = NULL;
                        
                        ob->id.tag &= ~LIB_TAG_NEED_LINK;
                        /* if id.us==0 a new base will be created later on */
diff --git a/source/blender/makesdna/DNA_object_types.h 
b/source/blender/makesdna/DNA_object_types.h
index 74469acd275..2cbc266ea0c 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -321,14 +321,12 @@ typedef struct Object {
 
        ListBase gpulamp;               /* runtime, for glsl lamp display only 
*/
        ListBase pc_ids;
-       ListBase *duplilist;    /* for temporary dupli list storage, only for 
use by RNA API */
        
        struct RigidBodyOb *rigidbody_object;           /* settings for Bullet 
rigid body */
        struct RigidBodyCon *rigidbody_constraint;      /* settings for Bullet 
constraint */
 
        float ima_ofs[2];               /* offset for image empties */
        ImageUser *iuser;               /* must be non-null when oject is an 
empty image */
-       void *pad4;
 
        ListBase lodlevels;             /* contains data for levels of detail */
        LodLevel *currentlod;
diff --git a/source/blender/makesrna/intern/rna_object.c 
b/source/blender/makesrna/intern/rna_object.c
index e5de42c43fa..1932390d0fd 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -2927,11 +2927,6 @@ static void rna_def_object(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Dupli Frames Off", "Recurring frames to 
exclude from the Dupliframes");
        RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, 
"rna_Object_internal_update");
 
-       prop = RNA_def_property(srna, "dupli_list", PROP_COLLECTION, PROP_NONE);
-       RNA_def_property_collection_sdna(prop, NULL, "duplilist", NULL);
-       RNA_def_property_struct_type(prop, "DupliObject");
-       RNA_def_property_ui_text(prop, "Dupli list", "Object duplis");
-
        prop = RNA_def_property(srna, "is_duplicator", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "transflag", OB_DUPLI);
        RNA_def_property_clear_flag(prop, PROP_EDITABLE);
diff --git a/source/blender/makesrna/intern/rna_object_api.c 
b/source/blender/makesrna/intern/rna_object_api.c
index 6b631ca0ecf..4e90c526e88 100644
--- a/source/blender/makesrna/intern/rna_object_api.c
+++ b/source/blender/makesrna/intern/rna_object_api.c
@@ -205,88 +205,6 @@ static Mesh *rna_Object_to_mesh(
        return rna_Main_meshes_new_from_object(bmain, reports, sce, view_layer, 
ob, apply_modifiers, settings, calc_tessface, calc_undeformed);
 }
 
-/* mostly a copy from convertblender.c */
-static void dupli_render_particle_set(EvaluationContext *eval_ctx, Scene 
*scene, Object *ob, int level, int enable)
-{
-       /* ugly function, but we need to set particle systems to their render
-        * settings before calling object_duplilist, to get render level duplis 
*/
-       Group *group;
-       GroupObject *go;
-       ParticleSystem *psys;
-       DerivedMesh *dm;
-       float mat[4][4];
-
-       unit_m4(mat);
-
-       if (level >= MAX_DUPLI_RECUR)
-               return;
-       
-       if (ob->transflag & OB_DUPLIPARTS) {
-               for (psys = ob->particlesystem.first; psys; psys = psys->next) {
-                       if (ELEM(psys->part->ren_as, PART_DRAW_OB, 
PART_DRAW_GR)) {
-                               if (enable)
-                                       psys_render_set(ob, psys, mat, mat, 1, 
1, 0.f);
-                               else
-                                       psys_render_restore(ob, psys);
-                       }
-               }
-
-               if (enable) {
-                       /* this is to make sure we get render level duplis in 
groups:
-                        * the derivedmesh must be created before 
init_render_mesh,
-                        * since object_duplilist does dupliparticles before 
that */
-                       dm = mesh_create_derived_render(eval_ctx, scene, ob, 
CD_MASK_BAREMESH | CD_MASK_MLOOPUV | CD_MASK_MLOOPCOL);
-                       dm->release(dm);
-
-                       for (psys = ob->particlesystem.first; psys; psys = 
psys->next)
-                               psys_get_modifier(ob, psys)->flag &= 
~eParticleSystemFlag_psys_updated;
-               }
-       }
-
-       if (ob->dup_group == NULL) return;
-       group = ob->dup_group;
-
-       for (go = group->gobject.first; go; go = go->next)
-               dupli_render_particle_set(eval_ctx, scene, go->ob, level + 1, 
enable);
-}
-/* When no longer needed, duplilist should be freed with Object.free_duplilist 
*/
-static void rna_Object_create_duplilist(Object *ob, bContext *C, ReportList 
*reports, Scene *sce, int settings)
-{
-       bool for_render = (settings == DAG_EVAL_RENDER);
-       EvaluationContext eval_ctx;
-
-       CTX_data_eval_ctx(C, &eval_ctx);
-
-       eval_ctx.mode = settings;
-
-       if (!(ob->transflag & OB_DUPLI)) {
-               BKE_report(reports, RPT_ERROR, "Object does not have duplis");
-               return;
-       }
-
-       /* free duplilist if a user forgets to */
-       if (ob->duplilist) {
-               BKE_report(reports, RPT_WARNING, "Object.dupli_list has not 
been freed");
-
-               free_object_duplilist(ob->duplilist);
-               ob->duplilist = NULL;
-       }
-       if (for_render)
-               dupli_render_particle_set(&eval_ctx, sce, ob, 0, 1);
-       ob->duplilist = object_duplilist(&eval_ctx, sce, ob);
-       if (for_render)
-               dupli_render_particle_set(&eval_ctx, sce, ob, 0, 0);
-       /* ob->duplilist should now be freed with Object.free_duplilist */
-}
-
-static void rna_Object_free_duplilist(Object *ob)
-{
-       if (ob->duplilist) {
-               free_object_duplilist(ob->duplilist);
-               ob->duplilist = NULL;
-       }
-}
-
 static PointerRNA rna_Object_shape_key_add(Object *ob, bContext *C, ReportList 
*reports,
                                            const char *name, int from_mix)
 {
@@ -542,13 +460,6 @@ void RNA_api_object(StructRNA *srna)
                {0, NULL, 0, NULL, NULL}
        };
 
-       static const EnumPropertyItem dupli_eval_mode_items[] = {
-               {DAG_EVAL_VIEWPORT, "VIEWPORT", 0, "Viewport", "Generate duplis 
using viewport settings"},
-               {DAG_EVAL_PREVIEW, "PREVIEW", 0, "Preview", "Generate duplis 
using preview settings"},
-               {DAG_EVAL_RENDER, "RENDER", 0, "Render", "Generate duplis using 
render settings"},
-               {0, NULL, 0, NULL, NULL}
-       };
-
 #ifndef NDEBUG
        static const EnumPropertyItem mesh_dm_info_items[] = {
                {0, "SOURCE", 0, "Source", "Source mesh"},
@@ -650,19 +561,6 @@ void RNA_api_object(StructRNA *srna)
                               "Mesh created from object, remove it if it is 
only used for export");
        RNA_def_function_return(func, parm);
 
-       /* duplis */
-       func = RNA_def_function(srna, "dupli_list_create", 
"rna_Object_create_duplilist");
-       RNA_def_function_ui_description(func, "Create a list of dupli objects 
for this object, needs to "
-                                       "be freed manually with free_dupli_list 
to restore the "
-                                       "objects real matrix and layers");
-       parm = RNA_def_pointer(func, "scene", "Scene", "", "Scene within which 
to evaluate duplis");
-       RNA_def_parameter_flags(parm, PROP_NEVER_NULL, PARM_REQUIRED);
-       RNA_def_enum(func, "settings", dupli_eval_mode_items, 0, "", "Generate 
texture coordinates for rendering");
-       RNA_def_function_flag(func, FUNC_USE_REPORTS | FUNC_USE_CONTEXT);
-
-       func = RNA_def_function(srna, "dupli_list_clear", 
"rna_Object_free_duplilist");
-       RNA_def_function_ui_description(func, "Free the list of dupli objects");
-
        /* Armature */
        func = RNA_def_function(srna, "find_armature", 
"modifiers_isDeformedByArmature");
        RNA_def_function_ui_description(func, "Find armature influencing this 
object as a parent or via a modifier");

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to