Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.c')
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 297489ee56f..d9c98bc0200 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1772,11 +1772,20 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos
modifier_setError(md, "Modifier requires original data, bad stack position.");
continue;
}
- if(sculpt_mode && (!has_multires || multires_applied))
- if(mti->type != eModifierTypeType_OnlyDeform || multires_applied) {
+ if(sculpt_mode && (!has_multires || multires_applied)) {
+ int unsupported= 0;
+
+ if(scene->toolsettings->sculpt->flags & SCULPT_ONLY_DEFORM)
+ unsupported|= mti->type != eModifierTypeType_OnlyDeform;
+
+ unsupported|= md->type == eModifierType_Multires && ((MultiresModifierData*)md)->sculptlvl==0;
+ unsupported|= multires_applied;
+
+ if(unsupported) {
modifier_setError(md, "Not supported in sculpt mode.");
continue;
}
+ }
if(needMapping && !modifier_supportsMapping(md)) continue;
if(useDeform < 0 && mti->dependsOnTime && mti->dependsOnTime(md)) continue;