From f4e52f447aa0c9d5218b575e13c0b2d004ba06b3 Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Thu, 18 Jan 2024 22:51:30 +0100 Subject: [PATCH] Modifiers: add ModifierTypeInfo::foreach_cache callback This allows modifiers to have cache pointers that are preserved over undo steps. I intend to use this for the baked data cache for the geometry nodes modifier. Pull Request: https://projects.blender.org/blender/blender/pulls/117307 --- source/blender/blenkernel/BKE_modifier.hh | 10 ++++++++++ source/blender/blenkernel/intern/object.cc | 18 +++++++++++++++++- .../blender/modifiers/intern/MOD_armature.cc | 1 + source/blender/modifiers/intern/MOD_array.cc | 1 + source/blender/modifiers/intern/MOD_bevel.cc | 1 + source/blender/modifiers/intern/MOD_boolean.cc | 1 + source/blender/modifiers/intern/MOD_build.cc | 1 + source/blender/modifiers/intern/MOD_cast.cc | 1 + source/blender/modifiers/intern/MOD_cloth.cc | 1 + .../blender/modifiers/intern/MOD_collision.cc | 1 + .../modifiers/intern/MOD_correctivesmooth.cc | 1 + source/blender/modifiers/intern/MOD_curve.cc | 1 + .../modifiers/intern/MOD_datatransfer.cc | 1 + .../blender/modifiers/intern/MOD_decimate.cc | 1 + .../blender/modifiers/intern/MOD_displace.cc | 1 + .../modifiers/intern/MOD_dynamicpaint.cc | 1 + .../blender/modifiers/intern/MOD_edgesplit.cc | 1 + source/blender/modifiers/intern/MOD_explode.cc | 1 + source/blender/modifiers/intern/MOD_fluid.cc | 1 + .../intern/MOD_grease_pencil_opacity.cc | 1 + .../intern/MOD_grease_pencil_subdiv.cc | 1 + source/blender/modifiers/intern/MOD_hook.cc | 1 + .../modifiers/intern/MOD_laplaciandeform.cc | 1 + .../modifiers/intern/MOD_laplaciansmooth.cc | 1 + source/blender/modifiers/intern/MOD_lattice.cc | 1 + source/blender/modifiers/intern/MOD_mask.cc | 1 + .../modifiers/intern/MOD_mesh_to_volume.cc | 1 + .../blender/modifiers/intern/MOD_meshcache.cc | 1 + .../blender/modifiers/intern/MOD_meshdeform.cc | 1 + .../modifiers/intern/MOD_meshsequencecache.cc | 1 + source/blender/modifiers/intern/MOD_mirror.cc | 1 + .../blender/modifiers/intern/MOD_multires.cc | 1 + source/blender/modifiers/intern/MOD_nodes.cc | 1 + source/blender/modifiers/intern/MOD_none.cc | 1 + .../modifiers/intern/MOD_normal_edit.cc | 1 + source/blender/modifiers/intern/MOD_ocean.cc | 1 + .../modifiers/intern/MOD_particleinstance.cc | 1 + .../modifiers/intern/MOD_particlesystem.cc | 1 + source/blender/modifiers/intern/MOD_remesh.cc | 1 + source/blender/modifiers/intern/MOD_screw.cc | 1 + .../blender/modifiers/intern/MOD_shapekey.cc | 1 + .../blender/modifiers/intern/MOD_shrinkwrap.cc | 1 + .../modifiers/intern/MOD_simpledeform.cc | 1 + source/blender/modifiers/intern/MOD_skin.cc | 1 + source/blender/modifiers/intern/MOD_smooth.cc | 1 + .../blender/modifiers/intern/MOD_softbody.cc | 1 + .../blender/modifiers/intern/MOD_solidify.cc | 1 + source/blender/modifiers/intern/MOD_subsurf.cc | 1 + source/blender/modifiers/intern/MOD_surface.cc | 1 + .../modifiers/intern/MOD_surfacedeform.cc | 1 + .../modifiers/intern/MOD_triangulate.cc | 1 + .../blender/modifiers/intern/MOD_uvproject.cc | 1 + source/blender/modifiers/intern/MOD_uvwarp.cc | 1 + .../modifiers/intern/MOD_volume_displace.cc | 1 + .../modifiers/intern/MOD_volume_to_mesh.cc | 1 + source/blender/modifiers/intern/MOD_warp.cc | 1 + source/blender/modifiers/intern/MOD_wave.cc | 1 + .../modifiers/intern/MOD_weighted_normal.cc | 1 + .../modifiers/intern/MOD_weightvgedit.cc | 1 + .../modifiers/intern/MOD_weightvgmix.cc | 1 + .../modifiers/intern/MOD_weightvgproximity.cc | 1 + source/blender/modifiers/intern/MOD_weld.cc | 1 + .../blender/modifiers/intern/MOD_wireframe.cc | 1 + 63 files changed, 88 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/BKE_modifier.hh b/source/blender/blenkernel/BKE_modifier.hh index df0034c66ba..6f22690218d 100644 --- a/source/blender/blenkernel/BKE_modifier.hh +++ b/source/blender/blenkernel/BKE_modifier.hh @@ -7,6 +7,7 @@ * \ingroup bke */ #include "BLI_compiler_attrs.h" +#include "BLI_function_ref.hh" #include "BLI_math_matrix_types.hh" #include "BLI_span.hh" @@ -33,6 +34,7 @@ struct ModifierData; struct Object; struct Scene; struct StructRNA; +struct IDCacheKey; enum class ModifierTypeType { /* Should not be used, only for None modifier type */ @@ -381,6 +383,14 @@ struct ModifierTypeInfo { * not been written (e.g. runtime data) can be reset. */ void (*blend_read)(BlendDataReader *reader, ModifierData *md); + + /** + * Iterate over all cache pointers of given modifier. Also see #IDTypeInfo::foreach_cache. + */ + void (*foreach_cache)( + Object *object, + ModifierData *md, + blender::FunctionRef fn); }; /* Used to set a modifier's panel type. */ diff --git a/source/blender/blenkernel/intern/object.cc b/source/blender/blenkernel/intern/object.cc index 1a5d2063f8d..5dd1dc46d45 100644 --- a/source/blender/blenkernel/intern/object.cc +++ b/source/blender/blenkernel/intern/object.cc @@ -587,6 +587,22 @@ static void object_foreach_path(ID *id, BPathForeachPathData *bpath_data) } } +static void object_foreach_cache(ID *id, + IDTypeForeachCacheFunctionCallback function_callback, + void *user_data) +{ + Object *ob = reinterpret_cast(id); + LISTBASE_FOREACH (ModifierData *, md, &ob->modifiers) { + if (const ModifierTypeInfo *info = BKE_modifier_get_info(ModifierType(md->type))) { + if (info->foreach_cache) { + info->foreach_cache(ob, md, [&](const IDCacheKey &cache_key, void **cache_p, uint flags) { + function_callback(id, &cache_key, cache_p, flags, user_data); + }); + } + } + } +} + static void object_blend_write(BlendWriter *writer, ID *id, const void *id_address) { Object *ob = (Object *)id; @@ -1069,7 +1085,7 @@ IDTypeInfo IDType_ID_OB = { /*free_data*/ object_free_data, /*make_local*/ nullptr, /*foreach_id*/ object_foreach_id, - /*foreach_cache*/ nullptr, + /*foreach_cache*/ object_foreach_cache, /*foreach_path*/ object_foreach_path, /*owner_pointer_get*/ nullptr, diff --git a/source/blender/modifiers/intern/MOD_armature.cc b/source/blender/modifiers/intern/MOD_armature.cc index 8466bb0faca..51486ed09ec 100644 --- a/source/blender/modifiers/intern/MOD_armature.cc +++ b/source/blender/modifiers/intern/MOD_armature.cc @@ -284,4 +284,5 @@ ModifierTypeInfo modifierType_Armature = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_array.cc b/source/blender/modifiers/intern/MOD_array.cc index f322d6d90c0..a21b642eba6 100644 --- a/source/blender/modifiers/intern/MOD_array.cc +++ b/source/blender/modifiers/intern/MOD_array.cc @@ -1104,4 +1104,5 @@ ModifierTypeInfo modifierType_Array = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_bevel.cc b/source/blender/modifiers/intern/MOD_bevel.cc index 4ed74311f24..d9851a98b53 100644 --- a/source/blender/modifiers/intern/MOD_bevel.cc +++ b/source/blender/modifiers/intern/MOD_bevel.cc @@ -444,4 +444,5 @@ ModifierTypeInfo modifierType_Bevel = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_boolean.cc b/source/blender/modifiers/intern/MOD_boolean.cc index 8b9e307a9e4..6140eca3a25 100644 --- a/source/blender/modifiers/intern/MOD_boolean.cc +++ b/source/blender/modifiers/intern/MOD_boolean.cc @@ -702,4 +702,5 @@ ModifierTypeInfo modifierType_Boolean = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_build.cc b/source/blender/modifiers/intern/MOD_build.cc index 67dd6a89817..31ebe971e1c 100644 --- a/source/blender/modifiers/intern/MOD_build.cc +++ b/source/blender/modifiers/intern/MOD_build.cc @@ -329,4 +329,5 @@ ModifierTypeInfo modifierType_Build = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_cast.cc b/source/blender/modifiers/intern/MOD_cast.cc index 6d3dbc7789a..e70cd732543 100644 --- a/source/blender/modifiers/intern/MOD_cast.cc +++ b/source/blender/modifiers/intern/MOD_cast.cc @@ -541,4 +541,5 @@ ModifierTypeInfo modifierType_Cast = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_cloth.cc b/source/blender/modifiers/intern/MOD_cloth.cc index f2838638f53..8d8f37075ca 100644 --- a/source/blender/modifiers/intern/MOD_cloth.cc +++ b/source/blender/modifiers/intern/MOD_cloth.cc @@ -304,4 +304,5 @@ ModifierTypeInfo modifierType_Cloth = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_collision.cc b/source/blender/modifiers/intern/MOD_collision.cc index 33a021081a1..097c7b4981d 100644 --- a/source/blender/modifiers/intern/MOD_collision.cc +++ b/source/blender/modifiers/intern/MOD_collision.cc @@ -316,4 +316,5 @@ ModifierTypeInfo modifierType_Collision = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_correctivesmooth.cc b/source/blender/modifiers/intern/MOD_correctivesmooth.cc index 2e6a1b78d20..a5ac6f10762 100644 --- a/source/blender/modifiers/intern/MOD_correctivesmooth.cc +++ b/source/blender/modifiers/intern/MOD_correctivesmooth.cc @@ -858,4 +858,5 @@ ModifierTypeInfo modifierType_CorrectiveSmooth = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_curve.cc b/source/blender/modifiers/intern/MOD_curve.cc index e27c2fdac72..9a38f4859a1 100644 --- a/source/blender/modifiers/intern/MOD_curve.cc +++ b/source/blender/modifiers/intern/MOD_curve.cc @@ -222,4 +222,5 @@ ModifierTypeInfo modifierType_Curve = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_datatransfer.cc b/source/blender/modifiers/intern/MOD_datatransfer.cc index 023e862118d..f8d9c32dd38 100644 --- a/source/blender/modifiers/intern/MOD_datatransfer.cc +++ b/source/blender/modifiers/intern/MOD_datatransfer.cc @@ -531,4 +531,5 @@ ModifierTypeInfo modifierType_DataTransfer = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_decimate.cc b/source/blender/modifiers/intern/MOD_decimate.cc index df9c7c1912c..080da680993 100644 --- a/source/blender/modifiers/intern/MOD_decimate.cc +++ b/source/blender/modifiers/intern/MOD_decimate.cc @@ -305,4 +305,5 @@ ModifierTypeInfo modifierType_Decimate = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_displace.cc b/source/blender/modifiers/intern/MOD_displace.cc index eeda9756554..c38de3534e8 100644 --- a/source/blender/modifiers/intern/MOD_displace.cc +++ b/source/blender/modifiers/intern/MOD_displace.cc @@ -474,4 +474,5 @@ ModifierTypeInfo modifierType_Displace = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_dynamicpaint.cc b/source/blender/modifiers/intern/MOD_dynamicpaint.cc index 238a742cb65..789dadbe7ce 100644 --- a/source/blender/modifiers/intern/MOD_dynamicpaint.cc +++ b/source/blender/modifiers/intern/MOD_dynamicpaint.cc @@ -223,4 +223,5 @@ ModifierTypeInfo modifierType_DynamicPaint = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_edgesplit.cc b/source/blender/modifiers/intern/MOD_edgesplit.cc index dd373d41bec..10341de358e 100644 --- a/source/blender/modifiers/intern/MOD_edgesplit.cc +++ b/source/blender/modifiers/intern/MOD_edgesplit.cc @@ -192,4 +192,5 @@ ModifierTypeInfo modifierType_EdgeSplit = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_explode.cc b/source/blender/modifiers/intern/MOD_explode.cc index 2efbcf3913a..62bb98e5ca2 100644 --- a/source/blender/modifiers/intern/MOD_explode.cc +++ b/source/blender/modifiers/intern/MOD_explode.cc @@ -1247,4 +1247,5 @@ ModifierTypeInfo modifierType_Explode = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_fluid.cc b/source/blender/modifiers/intern/MOD_fluid.cc index 46ba42c78d5..063ef407ac2 100644 --- a/source/blender/modifiers/intern/MOD_fluid.cc +++ b/source/blender/modifiers/intern/MOD_fluid.cc @@ -263,4 +263,5 @@ ModifierTypeInfo modifierType_Fluid = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_grease_pencil_opacity.cc b/source/blender/modifiers/intern/MOD_grease_pencil_opacity.cc index eb4d3a3af3f..3df437da665 100644 --- a/source/blender/modifiers/intern/MOD_grease_pencil_opacity.cc +++ b/source/blender/modifiers/intern/MOD_grease_pencil_opacity.cc @@ -330,4 +330,5 @@ ModifierTypeInfo modifierType_GreasePencilOpacity = { /*panel_register*/ blender::panel_register, /*blend_write*/ blender::blend_write, /*blend_read*/ blender::blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_grease_pencil_subdiv.cc b/source/blender/modifiers/intern/MOD_grease_pencil_subdiv.cc index ad6dec272ab..ff029aad74a 100644 --- a/source/blender/modifiers/intern/MOD_grease_pencil_subdiv.cc +++ b/source/blender/modifiers/intern/MOD_grease_pencil_subdiv.cc @@ -185,4 +185,5 @@ ModifierTypeInfo modifierType_GreasePencilSubdiv = { /*panel_register*/ blender::panel_register, /*blend_write*/ blender::blend_write, /*blend_read*/ blender::blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_hook.cc b/source/blender/modifiers/intern/MOD_hook.cc index 7d2afe50c96..9cd4ce6e7ed 100644 --- a/source/blender/modifiers/intern/MOD_hook.cc +++ b/source/blender/modifiers/intern/MOD_hook.cc @@ -574,4 +574,5 @@ ModifierTypeInfo modifierType_Hook = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_laplaciandeform.cc b/source/blender/modifiers/intern/MOD_laplaciandeform.cc index b41e6536bef..ef3c5ad0e30 100644 --- a/source/blender/modifiers/intern/MOD_laplaciandeform.cc +++ b/source/blender/modifiers/intern/MOD_laplaciandeform.cc @@ -884,4 +884,5 @@ ModifierTypeInfo modifierType_LaplacianDeform = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_laplaciansmooth.cc b/source/blender/modifiers/intern/MOD_laplaciansmooth.cc index c923b1bb3c9..e2b4867235c 100644 --- a/source/blender/modifiers/intern/MOD_laplaciansmooth.cc +++ b/source/blender/modifiers/intern/MOD_laplaciansmooth.cc @@ -584,4 +584,5 @@ ModifierTypeInfo modifierType_LaplacianSmooth = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_lattice.cc b/source/blender/modifiers/intern/MOD_lattice.cc index 71dd2f5d2cc..d2a6b70c48d 100644 --- a/source/blender/modifiers/intern/MOD_lattice.cc +++ b/source/blender/modifiers/intern/MOD_lattice.cc @@ -195,4 +195,5 @@ ModifierTypeInfo modifierType_Lattice = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_mask.cc b/source/blender/modifiers/intern/MOD_mask.cc index 87c73037dc8..85843376278 100644 --- a/source/blender/modifiers/intern/MOD_mask.cc +++ b/source/blender/modifiers/intern/MOD_mask.cc @@ -830,4 +830,5 @@ ModifierTypeInfo modifierType_Mask = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_mesh_to_volume.cc b/source/blender/modifiers/intern/MOD_mesh_to_volume.cc index e18623fb518..1dcc4d7f208 100644 --- a/source/blender/modifiers/intern/MOD_mesh_to_volume.cc +++ b/source/blender/modifiers/intern/MOD_mesh_to_volume.cc @@ -226,4 +226,5 @@ ModifierTypeInfo modifierType_MeshToVolume = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_meshcache.cc b/source/blender/modifiers/intern/MOD_meshcache.cc index 0fb697b1916..83b6be667c9 100644 --- a/source/blender/modifiers/intern/MOD_meshcache.cc +++ b/source/blender/modifiers/intern/MOD_meshcache.cc @@ -407,4 +407,5 @@ ModifierTypeInfo modifierType_MeshCache = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_meshdeform.cc b/source/blender/modifiers/intern/MOD_meshdeform.cc index 700d21ba023..94dc90a987a 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.cc +++ b/source/blender/modifiers/intern/MOD_meshdeform.cc @@ -648,4 +648,5 @@ ModifierTypeInfo modifierType_MeshDeform = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_meshsequencecache.cc b/source/blender/modifiers/intern/MOD_meshsequencecache.cc index 3399c464e22..446d4d82b40 100644 --- a/source/blender/modifiers/intern/MOD_meshsequencecache.cc +++ b/source/blender/modifiers/intern/MOD_meshsequencecache.cc @@ -462,4 +462,5 @@ ModifierTypeInfo modifierType_MeshSequenceCache = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_mirror.cc b/source/blender/modifiers/intern/MOD_mirror.cc index 41a72347d86..26a9c3f3b9b 100644 --- a/source/blender/modifiers/intern/MOD_mirror.cc +++ b/source/blender/modifiers/intern/MOD_mirror.cc @@ -270,4 +270,5 @@ ModifierTypeInfo modifierType_Mirror = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_multires.cc b/source/blender/modifiers/intern/MOD_multires.cc index df40faf0b8f..5356bb0d895 100644 --- a/source/blender/modifiers/intern/MOD_multires.cc +++ b/source/blender/modifiers/intern/MOD_multires.cc @@ -513,4 +513,5 @@ ModifierTypeInfo modifierType_Multires = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_nodes.cc b/source/blender/modifiers/intern/MOD_nodes.cc index 4ad03b59717..933b0723fdf 100644 --- a/source/blender/modifiers/intern/MOD_nodes.cc +++ b/source/blender/modifiers/intern/MOD_nodes.cc @@ -2294,4 +2294,5 @@ ModifierTypeInfo modifierType_Nodes = { /*panel_register*/ blender::panel_register, /*blend_write*/ blender::blend_write, /*blend_read*/ blender::blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_none.cc b/source/blender/modifiers/intern/MOD_none.cc index 0f3210a3887..77af2737943 100644 --- a/source/blender/modifiers/intern/MOD_none.cc +++ b/source/blender/modifiers/intern/MOD_none.cc @@ -55,4 +55,5 @@ ModifierTypeInfo modifierType_None = { /*panel_register*/ nullptr, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_normal_edit.cc b/source/blender/modifiers/intern/MOD_normal_edit.cc index e5e53db7ec7..9f906b63238 100644 --- a/source/blender/modifiers/intern/MOD_normal_edit.cc +++ b/source/blender/modifiers/intern/MOD_normal_edit.cc @@ -749,4 +749,5 @@ ModifierTypeInfo modifierType_NormalEdit = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_ocean.cc b/source/blender/modifiers/intern/MOD_ocean.cc index 974f8f40bc0..1fa775ebbcb 100644 --- a/source/blender/modifiers/intern/MOD_ocean.cc +++ b/source/blender/modifiers/intern/MOD_ocean.cc @@ -723,4 +723,5 @@ ModifierTypeInfo modifierType_Ocean = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_particleinstance.cc b/source/blender/modifiers/intern/MOD_particleinstance.cc index 3d63da66023..d287a8a17b7 100644 --- a/source/blender/modifiers/intern/MOD_particleinstance.cc +++ b/source/blender/modifiers/intern/MOD_particleinstance.cc @@ -670,4 +670,5 @@ ModifierTypeInfo modifierType_ParticleInstance = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_particlesystem.cc b/source/blender/modifiers/intern/MOD_particlesystem.cc index c0718201cbc..d774695d85f 100644 --- a/source/blender/modifiers/intern/MOD_particlesystem.cc +++ b/source/blender/modifiers/intern/MOD_particlesystem.cc @@ -296,4 +296,5 @@ ModifierTypeInfo modifierType_ParticleSystem = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_remesh.cc b/source/blender/modifiers/intern/MOD_remesh.cc index d188e244c73..803e11022b5 100644 --- a/source/blender/modifiers/intern/MOD_remesh.cc +++ b/source/blender/modifiers/intern/MOD_remesh.cc @@ -294,4 +294,5 @@ ModifierTypeInfo modifierType_Remesh = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_screw.cc b/source/blender/modifiers/intern/MOD_screw.cc index c3323972096..ccb772e3548 100644 --- a/source/blender/modifiers/intern/MOD_screw.cc +++ b/source/blender/modifiers/intern/MOD_screw.cc @@ -1174,4 +1174,5 @@ ModifierTypeInfo modifierType_Screw = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_shapekey.cc b/source/blender/modifiers/intern/MOD_shapekey.cc index d0add7772c9..aa840752756 100644 --- a/source/blender/modifiers/intern/MOD_shapekey.cc +++ b/source/blender/modifiers/intern/MOD_shapekey.cc @@ -136,4 +136,5 @@ ModifierTypeInfo modifierType_ShapeKey = { /*panel_register*/ nullptr, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_shrinkwrap.cc b/source/blender/modifiers/intern/MOD_shrinkwrap.cc index db1cca91e61..73ae32f647a 100644 --- a/source/blender/modifiers/intern/MOD_shrinkwrap.cc +++ b/source/blender/modifiers/intern/MOD_shrinkwrap.cc @@ -243,4 +243,5 @@ ModifierTypeInfo modifierType_Shrinkwrap = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_simpledeform.cc b/source/blender/modifiers/intern/MOD_simpledeform.cc index 01f21b9edd8..2f6ac1163b3 100644 --- a/source/blender/modifiers/intern/MOD_simpledeform.cc +++ b/source/blender/modifiers/intern/MOD_simpledeform.cc @@ -564,4 +564,5 @@ ModifierTypeInfo modifierType_SimpleDeform = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_skin.cc b/source/blender/modifiers/intern/MOD_skin.cc index 8ec325b5ae9..ea097cf8701 100644 --- a/source/blender/modifiers/intern/MOD_skin.cc +++ b/source/blender/modifiers/intern/MOD_skin.cc @@ -2101,4 +2101,5 @@ ModifierTypeInfo modifierType_Skin = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_smooth.cc b/source/blender/modifiers/intern/MOD_smooth.cc index 9e5b0f40eb2..ca0d6d7a547 100644 --- a/source/blender/modifiers/intern/MOD_smooth.cc +++ b/source/blender/modifiers/intern/MOD_smooth.cc @@ -248,4 +248,5 @@ ModifierTypeInfo modifierType_Smooth = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_softbody.cc b/source/blender/modifiers/intern/MOD_softbody.cc index b33f8bdfaff..652d0f1266a 100644 --- a/source/blender/modifiers/intern/MOD_softbody.cc +++ b/source/blender/modifiers/intern/MOD_softbody.cc @@ -123,4 +123,5 @@ ModifierTypeInfo modifierType_Softbody = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_solidify.cc b/source/blender/modifiers/intern/MOD_solidify.cc index 72ef2d0dff5..514e7ac0951 100644 --- a/source/blender/modifiers/intern/MOD_solidify.cc +++ b/source/blender/modifiers/intern/MOD_solidify.cc @@ -296,4 +296,5 @@ ModifierTypeInfo modifierType_Solidify = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_subsurf.cc b/source/blender/modifiers/intern/MOD_subsurf.cc index 8f2cd162f48..66823b8a7f4 100644 --- a/source/blender/modifiers/intern/MOD_subsurf.cc +++ b/source/blender/modifiers/intern/MOD_subsurf.cc @@ -517,4 +517,5 @@ ModifierTypeInfo modifierType_Subsurf = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_surface.cc b/source/blender/modifiers/intern/MOD_surface.cc index 908f6ccdb4c..ea5a854fc27 100644 --- a/source/blender/modifiers/intern/MOD_surface.cc +++ b/source/blender/modifiers/intern/MOD_surface.cc @@ -234,4 +234,5 @@ ModifierTypeInfo modifierType_Surface = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.cc b/source/blender/modifiers/intern/MOD_surfacedeform.cc index 43dadd4618a..d932e3277f5 100644 --- a/source/blender/modifiers/intern/MOD_surfacedeform.cc +++ b/source/blender/modifiers/intern/MOD_surfacedeform.cc @@ -1745,4 +1745,5 @@ ModifierTypeInfo modifierType_SurfaceDeform = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_triangulate.cc b/source/blender/modifiers/intern/MOD_triangulate.cc index c5f414f4669..b2781c91240 100644 --- a/source/blender/modifiers/intern/MOD_triangulate.cc +++ b/source/blender/modifiers/intern/MOD_triangulate.cc @@ -162,4 +162,5 @@ ModifierTypeInfo modifierType_Triangulate = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_uvproject.cc b/source/blender/modifiers/intern/MOD_uvproject.cc index fe0ca0cb1f0..e31deb0cf1d 100644 --- a/source/blender/modifiers/intern/MOD_uvproject.cc +++ b/source/blender/modifiers/intern/MOD_uvproject.cc @@ -381,4 +381,5 @@ ModifierTypeInfo modifierType_UVProject = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_uvwarp.cc b/source/blender/modifiers/intern/MOD_uvwarp.cc index 3430e1245ea..66b6d187c6c 100644 --- a/source/blender/modifiers/intern/MOD_uvwarp.cc +++ b/source/blender/modifiers/intern/MOD_uvwarp.cc @@ -337,4 +337,5 @@ ModifierTypeInfo modifierType_UVWarp = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_volume_displace.cc b/source/blender/modifiers/intern/MOD_volume_displace.cc index e6fb85c1ab9..702e2d97c92 100644 --- a/source/blender/modifiers/intern/MOD_volume_displace.cc +++ b/source/blender/modifiers/intern/MOD_volume_displace.cc @@ -345,4 +345,5 @@ ModifierTypeInfo modifierType_VolumeDisplace = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_volume_to_mesh.cc b/source/blender/modifiers/intern/MOD_volume_to_mesh.cc index 8b74d238589..a11dadf92a8 100644 --- a/source/blender/modifiers/intern/MOD_volume_to_mesh.cc +++ b/source/blender/modifiers/intern/MOD_volume_to_mesh.cc @@ -229,4 +229,5 @@ ModifierTypeInfo modifierType_VolumeToMesh = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_warp.cc b/source/blender/modifiers/intern/MOD_warp.cc index 189eb15cf3c..2b6d168cd77 100644 --- a/source/blender/modifiers/intern/MOD_warp.cc +++ b/source/blender/modifiers/intern/MOD_warp.cc @@ -503,4 +503,5 @@ ModifierTypeInfo modifierType_Warp = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_wave.cc b/source/blender/modifiers/intern/MOD_wave.cc index fa04ee2bdbb..668dfbd33e7 100644 --- a/source/blender/modifiers/intern/MOD_wave.cc +++ b/source/blender/modifiers/intern/MOD_wave.cc @@ -452,4 +452,5 @@ ModifierTypeInfo modifierType_Wave = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_weighted_normal.cc b/source/blender/modifiers/intern/MOD_weighted_normal.cc index 28170456edc..3dae17c219a 100644 --- a/source/blender/modifiers/intern/MOD_weighted_normal.cc +++ b/source/blender/modifiers/intern/MOD_weighted_normal.cc @@ -664,4 +664,5 @@ ModifierTypeInfo modifierType_WeightedNormal = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_weightvgedit.cc b/source/blender/modifiers/intern/MOD_weightvgedit.cc index 364fbdde913..fc4d109f19f 100644 --- a/source/blender/modifiers/intern/MOD_weightvgedit.cc +++ b/source/blender/modifiers/intern/MOD_weightvgedit.cc @@ -420,4 +420,5 @@ ModifierTypeInfo modifierType_WeightVGEdit = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_weightvgmix.cc b/source/blender/modifiers/intern/MOD_weightvgmix.cc index 65b702584b6..cdce2feec56 100644 --- a/source/blender/modifiers/intern/MOD_weightvgmix.cc +++ b/source/blender/modifiers/intern/MOD_weightvgmix.cc @@ -520,4 +520,5 @@ ModifierTypeInfo modifierType_WeightVGMix = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.cc b/source/blender/modifiers/intern/MOD_weightvgproximity.cc index 6b9a0049e34..3c6668431d3 100644 --- a/source/blender/modifiers/intern/MOD_weightvgproximity.cc +++ b/source/blender/modifiers/intern/MOD_weightvgproximity.cc @@ -765,4 +765,5 @@ ModifierTypeInfo modifierType_WeightVGProximity = { /*panel_register*/ panel_register, /*blend_write*/ blend_write, /*blend_read*/ blend_read, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_weld.cc b/source/blender/modifiers/intern/MOD_weld.cc index 611be022488..7e2d8b99c32 100644 --- a/source/blender/modifiers/intern/MOD_weld.cc +++ b/source/blender/modifiers/intern/MOD_weld.cc @@ -214,4 +214,5 @@ ModifierTypeInfo modifierType_Weld = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, }; diff --git a/source/blender/modifiers/intern/MOD_wireframe.cc b/source/blender/modifiers/intern/MOD_wireframe.cc index 6d34cc5dcf8..40d0eb2f952 100644 --- a/source/blender/modifiers/intern/MOD_wireframe.cc +++ b/source/blender/modifiers/intern/MOD_wireframe.cc @@ -196,4 +196,5 @@ ModifierTypeInfo modifierType_Wireframe = { /*panel_register*/ panel_register, /*blend_write*/ nullptr, /*blend_read*/ nullptr, + /*foreach_cache*/ nullptr, };