Commit: af64b0ad5f561208af748dc2b383152207c1be2b Author: Hans Goudey Date: Tue Jul 6 16:22:09 2021 -0500 Branches: curve-nodes-modifier https://developer.blender.org/rBaf64b0ad5f561208af748dc2b383152207c1be2b
Cleanup: Simplify curve eval cache =================================================================== M source/blender/blenkernel/intern/displist.cc M source/blender/depsgraph/intern/depsgraph_query_iter.cc M source/blender/draw/intern/draw_cache_impl_curve.cc M source/blender/makesdna/DNA_object_types.h =================================================================== diff --git a/source/blender/blenkernel/intern/displist.cc b/source/blender/blenkernel/intern/displist.cc index 1e9f22d588e..0bf9f1f3252 100644 --- a/source/blender/blenkernel/intern/displist.cc +++ b/source/blender/blenkernel/intern/displist.cc @@ -1548,8 +1548,6 @@ void BKE_displist_make_curveTypes(Depsgraph *depsgraph, geometry_set.get_component_for_write<CurveComponent>(); } - ob->runtime.curve_eval = (void *)geometry_set.get_curve_for_read(); - ob->runtime.geometry_set_eval = new GeometrySet(std::move(geometry_set)); } diff --git a/source/blender/depsgraph/intern/depsgraph_query_iter.cc b/source/blender/depsgraph/intern/depsgraph_query_iter.cc index 5d7c51be562..2d4e5286e35 100644 --- a/source/blender/depsgraph/intern/depsgraph_query_iter.cc +++ b/source/blender/depsgraph/intern/depsgraph_query_iter.cc @@ -238,7 +238,6 @@ bool deg_iterator_components_step(BLI_Iterator *iter) *temp_object = *data->geometry_component_owner; temp_object->type = OB_CURVE; temp_object->data = (void *)curve; - temp_object->runtime.curve_eval = (void *)component->get_for_read(); temp_object->runtime.select_id = data->geometry_component_owner->runtime.select_id; iter->current = temp_object; return true; diff --git a/source/blender/draw/intern/draw_cache_impl_curve.cc b/source/blender/draw/intern/draw_cache_impl_curve.cc index 96c1a267d22..e427810d98f 100644 --- a/source/blender/draw/intern/draw_cache_impl_curve.cc +++ b/source/blender/draw/intern/draw_cache_impl_curve.cc @@ -255,7 +255,9 @@ static CurveRenderData *curve_render_data_create(Curve *cu, Object *object, cons rdata->actvert = cu->actvert; rdata->ob_curve_cache = object->runtime.curve_cache; - rdata->curve_eval = (const CurveEval *)object->runtime.curve_eval; + if (object->runtime.geometry_set_eval != nullptr) { + rdata->curve_eval = object->runtime.geometry_set_eval->get_curve_for_read(); + } if (types & CU_DATATYPE_WIRE) { if (rdata->curve_eval != nullptr) { diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index d4227fabe36..262d650c1ef 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -210,16 +210,6 @@ typedef struct Object_Runtime { /** Runtime evaluated curve-specific data, not stored in the file. */ struct CurveCache *curve_cache; - /** - * A pointer to evaluated curve data owned by #geometry_set_eval (const CurveEval *). - * Stored as a `void *` because DNA doesn't support const pointers right now. - * - * This is necessary because curve object data does not use CoW. Normally we use a "fake" CoW - * in the geometry component, but for curve objects we must use the original #Curve in order to - * display edit mode data, and the evaluated data cannot be stored in the original #Curve. - */ - void *curve_eval; - unsigned short local_collections_bits; short _pad2[3]; } Object_Runtime; _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs