diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-04-06 11:32:18 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-04-13 15:16:59 +0300 |
commit | 5d7952d9c75d087b551ab95dff90ee2f7f636417 (patch) | |
tree | 2b384b8ff9408d62526c4d8e57541634c95df6a2 /source | |
parent | f0a4c631bbac6247e3b3795681a3a31398f71c13 (diff) |
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
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 1 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_object.c | 5 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_object_api.c | 102 |
4 files changed, 0 insertions, 110 deletions
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"); |