[Bf-blender-cvs] [0dc68aeff8e] curve-nodes-modifier: Merge branch 'master' into curve-nodes-modifier

Hans Goudey noreply at git.blender.org
Tue Jul 13 01:40:44 CEST 2021


Commit: 0dc68aeff8e91b837ce8b769f3016503950e269f
Author: Hans Goudey
Date:   Mon Jun 28 21:33:34 2021 -0500
Branches: curve-nodes-modifier
https://developer.blender.org/rB0dc68aeff8e91b837ce8b769f3016503950e269f

Merge branch 'master' into curve-nodes-modifier

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



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

diff --cc source/blender/blenkernel/intern/displist.cc
index 3faa1ff99ce,3048795ba45..719a8900aa9
--- a/source/blender/blenkernel/intern/displist.cc
+++ b/source/blender/blenkernel/intern/displist.cc
@@@ -1275,28 -1403,31 +1275,28 @@@ static void evaluate_curve_type_object(
                                         Object *ob,
                                         const bool for_render,
                                         ListBase *r_dispbase,
 -                                       Mesh **r_final)
 +                                       GeometrySet *r_geometry_set)
  {
-   const Curve *cu = (const Curve *)ob->data;
    BLI_assert(ELEM(ob->type, OB_CURVE, OB_FONT));
+   const Curve *cu = (const Curve *)ob->data;
  
 -  ListBase nubase = {nullptr, nullptr};
 -
 -  BKE_curve_bevelList_free(&ob->runtime.curve_cache->bev);
 -
 -  if (ob->runtime.curve_cache->anim_path_accum_length) {
 -    MEM_freeN((void *)ob->runtime.curve_cache->anim_path_accum_length);
 -  }
 -  ob->runtime.curve_cache->anim_path_accum_length = nullptr;
 +  ListBase *deformed_nurbs = &ob->runtime.curve_cache->deformed_nurbs;
  
    if (ob->type == OB_FONT) {
 -    BKE_vfont_to_curve_nubase(ob, FO_EDIT, &nubase);
 +    BKE_vfont_to_curve_nubase(ob, FO_EDIT, deformed_nurbs);
    }
    else {
 -    BKE_nurbList_duplicate(&nubase, BKE_curve_nurbs_get(const_cast<Curve *>(cu)));
 +    BKE_nurbList_duplicate(deformed_nurbs, BKE_curve_nurbs_get(const_cast<Curve *>(cu)));
    }
  
 -  bool force_mesh_conversion = BKE_curve_calc_modifiers_pre(
 -      depsgraph, scene, ob, &nubase, &nubase, for_render);
 +  BKE_curve_calc_modifiers_pre(depsgraph, scene, ob, deformed_nurbs, deformed_nurbs, for_render);
 +
 +  BKE_curve_bevelList_make(ob, deformed_nurbs, for_render);
  
 -  BKE_curve_bevelList_make(ob, &nubase, for_render);
 +  if ((cu->flag & CU_PATH) ||
 +      DEG_get_eval_flags_for_id(depsgraph, &ob->id) & DAG_EVAL_NEED_CURVE_PATH) {
 +    BKE_anim_path_calc_data(ob);
 +  }
  
    /* If curve has no bevel will return nothing */
    ListBase dlbev = BKE_curve_bevel_make(cu);
@@@ -1512,20 -1660,18 +1512,20 @@@ void BKE_displist_make_curveTypes(Depsg
  }
  
  void BKE_displist_make_curveTypes_forRender(
-     Depsgraph *depsgraph, const Scene *scene, Object *ob, ListBase *dispbase, Mesh **r_final)
+     Depsgraph *depsgraph, const Scene *scene, Object *ob, ListBase *r_dispbase, Mesh **r_final)
  {
    if (ob->runtime.curve_cache == nullptr) {
 -    ob->runtime.curve_cache = (CurveCache *)MEM_callocN(sizeof(CurveCache),
 -                                                        "CurveCache for Curve");
 +    ob->runtime.curve_cache = (CurveCache *)MEM_callocN(sizeof(CurveCache), __func__);
    }
  
    if (ob->type == OB_SURF) {
-     evaluate_surface_object(depsgraph, scene, ob, true, dispbase, r_final);
+     evaluate_surface_object(depsgraph, scene, ob, true, r_dispbase, r_final);
    }
    else {
 -    evaluate_curve_type_object(depsgraph, scene, ob, true, r_dispbase, r_final);
 +    GeometrySet geometry_set;
-     evaluate_curve_type_object(depsgraph, scene, ob, true, dispbase, &geometry_set);
++    evaluate_curve_type_object(depsgraph, scene, ob, true, r_dispbase, &geometry_set);
 +    MeshComponent &mesh_component = geometry_set.get_component_for_write<MeshComponent>();
 +    *r_final = mesh_component.release();
    }
  }



More information about the Bf-blender-cvs mailing list