Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/displist.c
| Show First 20 Lines • Show All 1,485 Lines • ▼ Show 20 Lines | else if (ELEM(ob->type, OB_CURVE, OB_FONT)) { | ||||
| BKE_curve_bevelList_free(&ob->runtime.curve_cache->bev); | BKE_curve_bevelList_free(&ob->runtime.curve_cache->bev); | ||||
| /* We only re-evaluate path if evaluation is not happening for orco. | /* We only re-evaluate path if evaluation is not happening for orco. | ||||
| * If the calculation happens for orco, we should never free data which | * If the calculation happens for orco, we should never free data which | ||||
| * was needed before and only not needed for orco calculation. | * was needed before and only not needed for orco calculation. | ||||
| */ | */ | ||||
| if (!for_orco) { | if (!for_orco) { | ||||
| if (ob->runtime.curve_cache->path) { | if (ob->runtime.curve_cache->anim_path_accum_length) { | ||||
| free_path(ob->runtime.curve_cache->path); | MEM_freeN((void *)ob->runtime.curve_cache->anim_path_accum_length); | ||||
| } | } | ||||
| ob->runtime.curve_cache->path = NULL; | ob->runtime.curve_cache->anim_path_accum_length = NULL; | ||||
| } | } | ||||
| if (ob->type == OB_FONT) { | if (ob->type == OB_FONT) { | ||||
| BKE_vfont_to_curve_nubase(ob, FO_EDIT, &nubase); | BKE_vfont_to_curve_nubase(ob, FO_EDIT, &nubase); | ||||
| } | } | ||||
| else { | else { | ||||
| BKE_nurbList_duplicate(&nubase, BKE_curve_nurbs_get(cu)); | BKE_nurbList_duplicate(&nubase, BKE_curve_nurbs_get(cu)); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 192 Lines • ▼ Show 20 Lines | else if (ELEM(ob->type, OB_CURVE, OB_FONT)) { | ||||
| if (!(cu->flag & CU_DEFORM_FILL)) { | if (!(cu->flag & CU_DEFORM_FILL)) { | ||||
| curve_to_filledpoly(cu, dispbase); | curve_to_filledpoly(cu, dispbase); | ||||
| } | } | ||||
| if (!for_orco) { | if (!for_orco) { | ||||
| if ((cu->flag & CU_PATH) || | if ((cu->flag & CU_PATH) || | ||||
| DEG_get_eval_flags_for_id(depsgraph, &ob->id) & DAG_EVAL_NEED_CURVE_PATH) { | DEG_get_eval_flags_for_id(depsgraph, &ob->id) & DAG_EVAL_NEED_CURVE_PATH) { | ||||
| calc_curvepath(ob, &nubase); | BKE_anim_path_calc_data(ob); | ||||
| } | } | ||||
| BKE_nurbList_duplicate(&ob->runtime.curve_cache->deformed_nurbs, &nubase); | BKE_nurbList_duplicate(&ob->runtime.curve_cache->deformed_nurbs, &nubase); | ||||
| curve_calc_modifiers_post( | curve_calc_modifiers_post( | ||||
| depsgraph, scene, ob, dispbase, r_final, for_render, force_mesh_conversion); | depsgraph, scene, ob, dispbase, r_final, for_render, force_mesh_conversion); | ||||
| } | } | ||||
| if (cu->flag & CU_DEFORM_FILL && !ob->runtime.data_eval) { | if (cu->flag & CU_DEFORM_FILL && !ob->runtime.data_eval) { | ||||
| ▲ Show 20 Lines • Show All 104 Lines • Show Last 20 Lines | |||||