Fix T74700: "Convert Text to Curve" disregards "Text on Curve"

There was an assert here as well since using the original object to read
from was having an empty runtime curve cache.

Now use BKE_vfont_to_curve_ex instead of BKE_vfont_to_curve, so we can
read from the evaluated object and write to the original curves in order
to have the modified data taken into account on next object evaluation.
(BKE_vfont_to_curve would read and write to/from the same object)

Final solution provided by @sergey in that report, thx!
This commit is contained in:
Philipp Oeser 2020-04-27 17:35:35 +02:00
parent a4df7f78a8
commit fbae4c5ba3
Notes: blender-bot 2023-02-14 10:09:24 +01:00
Referenced by issue #74700, "Convert Text to Curve" disregards "Text ON Curve"
1 changed files with 2 additions and 7 deletions

View File

@ -2380,13 +2380,8 @@ static int convert_exec(bContext *C, wmOperator *op)
cu = newob->data;
/* TODO(sergey): Ideally DAG will create nurbs list for a curve data
* datablock, but for until we've got granular update
* lets take care by selves.
*/
/* XXX This may fail/crash, since BKE_vfont_to_curve()
* accesses evaluated data in some cases (bastien). */
BKE_vfont_to_curve(newob, FO_EDIT);
Object *ob_eval = DEG_get_evaluated_object(depsgraph, ob);
BKE_vfont_to_curve_ex(ob_eval, ob_eval->data, FO_EDIT, &cu->nurb, NULL, NULL, NULL, NULL);
newob->type = OB_CURVE;
cu->type = OB_CURVE;