merge with trunk at r31523
[blender.git] / source / blender / modifiers / intern / MOD_multires.c
index 0498c57e0a857ae65f705dcc2bad94ac0bae7d72..81490c9d7db7fe7279a6141894777f20c12d7b59 100644 (file)
@@ -38,6 +38,8 @@
 #include "BKE_paint.h"
 #include "BKE_particle.h"
 
+#include "DNA_mesh_types.h"
+
 static void initData(ModifierData *md)
 {
        MultiresModifierData *mmd = (MultiresModifierData*)md;
@@ -66,6 +68,15 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
        int sculpting= (ob->mode & OB_MODE_SCULPT) && ss;
        MultiresModifierData *mmd = (MultiresModifierData*)md;
        DerivedMesh *result;
+       Mesh *me= (Mesh*)ob->data;
+
+       if(mmd->totlvl) {
+               if(!CustomData_get_layer(&me->pdata, CD_MDISPS)) {
+                       /* multires can't work without displacement layer */
+                       modifier_setError(md, "Modifier needs mesh with displacement data.");
+                       return dm;
+               }
+       }
 
        result = multires_dm_create_from_derived(mmd, 0, dm, ob, useRenderParams, isFinalCalc);