Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/paint.c
| Show First 20 Lines • Show All 986 Lines • ▼ Show 20 Lines | if (ob && ob->sculpt) { | ||||
| DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY); | DEG_id_tag_update(&ob->id, ID_RECALC_GEOMETRY); | ||||
| } | } | ||||
| } | } | ||||
| static void sculptsession_free_pbvh(Object *object) | static void sculptsession_free_pbvh(Object *object) | ||||
| { | { | ||||
| SculptSession *ss = object->sculpt; | SculptSession *ss = object->sculpt; | ||||
| if (ss && ss->pbvh) { | if (!ss) { | ||||
| return; | |||||
| } | |||||
| if (ss->pbvh) { | |||||
| BKE_pbvh_free(ss->pbvh); | BKE_pbvh_free(ss->pbvh); | ||||
| ss->pbvh = NULL; | ss->pbvh = NULL; | ||||
| } | } | ||||
| if (ss->pmap) { | |||||
| MEM_freeN(ss->pmap); | |||||
| ss->pmap = NULL; | |||||
| } | |||||
| if (ss->pmap_mem) { | |||||
| MEM_freeN(ss->pmap_mem); | |||||
| ss->pmap_mem = NULL; | |||||
| } | |||||
| } | } | ||||
| void BKE_sculptsession_bm_to_me_for_render(Object *object) | void BKE_sculptsession_bm_to_me_for_render(Object *object) | ||||
| { | { | ||||
| if (object && object->sculpt) { | if (object && object->sculpt) { | ||||
| if (object->sculpt->bm) { | if (object->sculpt->bm) { | ||||
| /* Ensure no points to old arrays are stored in DM | /* Ensure no points to old arrays are stored in DM | ||||
| * | * | ||||
| ▲ Show 20 Lines • Show All 198 Lines • ▼ Show 20 Lines | static void sculpt_update_object( | ||||
| } | } | ||||
| ss->subdiv_ccg = me_eval->runtime.subdiv_ccg; | ss->subdiv_ccg = me_eval->runtime.subdiv_ccg; | ||||
| PBVH *pbvh = BKE_sculpt_object_pbvh_ensure(depsgraph, ob); | PBVH *pbvh = BKE_sculpt_object_pbvh_ensure(depsgraph, ob); | ||||
| BLI_assert(pbvh == ss->pbvh); | BLI_assert(pbvh == ss->pbvh); | ||||
| UNUSED_VARS_NDEBUG(pbvh); | UNUSED_VARS_NDEBUG(pbvh); | ||||
| MEM_SAFE_FREE(ss->pmap); | if (need_pmap && ob->type == OB_MESH && !ss->pmap) { | ||||
| MEM_SAFE_FREE(ss->pmap_mem); | |||||
| if (need_pmap && ob->type == OB_MESH) { | |||||
| BKE_mesh_vert_poly_map_create( | BKE_mesh_vert_poly_map_create( | ||||
| &ss->pmap, &ss->pmap_mem, me->mpoly, me->mloop, me->totvert, me->totpoly, me->totloop); | &ss->pmap, &ss->pmap_mem, me->mpoly, me->mloop, me->totvert, me->totpoly, me->totloop); | ||||
| } | } | ||||
| pbvh_show_mask_set(ss->pbvh, ss->show_mask); | pbvh_show_mask_set(ss->pbvh, ss->show_mask); | ||||
| if (ss->modifiers_active) { | if (ss->modifiers_active) { | ||||
| if (!ss->orig_cos) { | if (!ss->orig_cos) { | ||||
| ▲ Show 20 Lines • Show All 352 Lines • Show Last 20 Lines | |||||