Fix T103294: bring back modifyMesh function for geometry nodes modifier

This was removed inrBb1494bcea7b6bb608 under the assumption that
it is not needed anymore. Apparently it is, so this commit brings it back.
This commit is contained in:
Jacques Lucke 2022-12-17 14:46:15 +01:00
parent c18055ba5c
commit 28511ac6cf
Notes: blender-bot 2023-02-14 00:29:15 +01:00
Referenced by issue #103301, Crash with Blender Studio's stretching visualization file
Referenced by issue #103294, Regression: Render crash if add another modifier after geometry node on object on cycles render
1 changed files with 14 additions and 1 deletions

View File

@ -1309,6 +1309,19 @@ static void modifyGeometry(ModifierData *md,
}
}
static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *mesh)
{
GeometrySet geometry_set = GeometrySet::create_with_mesh(mesh, GeometryOwnershipType::Editable);
modifyGeometry(md, ctx, geometry_set);
Mesh *new_mesh = geometry_set.get_component_for_write<MeshComponent>().release();
if (new_mesh == nullptr) {
return BKE_mesh_new_nomain(0, 0, 0, 0, 0);
}
return new_mesh;
}
static void modifyGeometrySet(ModifierData *md,
const ModifierEvalContext *ctx,
GeometrySet *geometry_set)
@ -1869,7 +1882,7 @@ ModifierTypeInfo modifierType_Nodes = {
/* deformMatrices */ nullptr,
/* deformVertsEM */ nullptr,
/* deformMatricesEM */ nullptr,
/* modifyMesh */ nullptr,
/* modifyMesh */ modifyMesh,
/* modifyGeometrySet */ modifyGeometrySet,
/* initData */ initData,