[Bf-blender-cvs] [1ad81a67067] curve-nodes-modifier: Make curve data visible on non-curve object types
Hans Goudey
noreply at git.blender.org
Tue Jul 13 01:40:46 CEST 2021
Commit: 1ad81a6706739126ef46afa4897c45a1e5b31619
Author: Hans Goudey
Date: Fri Jul 2 00:15:23 2021 -0500
Branches: curve-nodes-modifier
https://developer.blender.org/rB1ad81a6706739126ef46afa4897c45a1e5b31619
Make curve data visible on non-curve object types
===================================================================
M source/blender/blenkernel/intern/geometry_component_curve.cc
M source/blender/draw/intern/draw_cache.c
M source/blender/draw/intern/draw_cache_impl_curve.cc
M source/blender/makesdna/DNA_curve_types.h
===================================================================
diff --git a/source/blender/blenkernel/intern/geometry_component_curve.cc b/source/blender/blenkernel/intern/geometry_component_curve.cc
index e177cceb091..b5c49dbb8b2 100644
--- a/source/blender/blenkernel/intern/geometry_component_curve.cc
+++ b/source/blender/blenkernel/intern/geometry_component_curve.cc
@@ -146,6 +146,7 @@ const Curve *CurveComponent::get_curve_for_render() const
}
curve_for_render_ = (Curve *)BKE_id_new_nomain(ID_CU, nullptr);
+ curve_for_render_->curve_eval = curve_;
return curve_for_render_;
}
diff --git a/source/blender/draw/intern/draw_cache.c b/source/blender/draw/intern/draw_cache.c
index 6775a281677..10c4c2c4fcc 100644
--- a/source/blender/draw/intern/draw_cache.c
+++ b/source/blender/draw/intern/draw_cache.c
@@ -2931,11 +2931,6 @@ GPUBatch *DRW_cache_curve_edge_wire_get(Object *ob)
BLI_assert(ob->type == OB_CURVE);
struct Curve *cu = ob->data;
- struct Mesh *mesh_eval = BKE_object_get_evaluated_mesh(ob);
- if (mesh_eval != NULL) {
- return DRW_mesh_batch_cache_get_loose_edges(mesh_eval);
- }
-
return DRW_curve_batch_cache_get_wire_edge(cu);
}
diff --git a/source/blender/draw/intern/draw_cache_impl_curve.cc b/source/blender/draw/intern/draw_cache_impl_curve.cc
index fe0eaa219cb..fa59b61248a 100644
--- a/source/blender/draw/intern/draw_cache_impl_curve.cc
+++ b/source/blender/draw/intern/draw_cache_impl_curve.cc
@@ -256,7 +256,7 @@ static CurveRenderData *curve_render_data_create(Curve *cu, Object *ob, const in
rdata->ob_curve_cache = ob->runtime.curve_cache;
- rdata->curve_eval = ob->runtime.geometry_set_eval->get_curve_for_read();
+ rdata->curve_eval = cu->curve_eval;
if (types & CU_DATATYPE_WIRE) {
if (rdata->curve_eval != nullptr) {
diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h
index 231c7a79f34..06e9953b33c 100644
--- a/source/blender/makesdna/DNA_curve_types.h
+++ b/source/blender/makesdna/DNA_curve_types.h
@@ -300,6 +300,12 @@ typedef struct Curve {
char _pad2[6];
float fsize_realtime;
+ /**
+ * A pointer to curve data from geometry nodes, currently only set for evaluated
+ * objects by the dependency graph iterator, and owned by #geometry_set_eval.
+ */
+ struct CurveEval *curve_eval;
+
void *batch_cache;
} Curve;
More information about the Bf-blender-cvs
mailing list