Added warning in the multires panel to alert user if they have a modifier that changes mesh topology enabled, the render level will not have any effect.

This commit is contained in:
Nicholas Bishop 2006-12-01 22:44:27 +00:00
parent 662ce4a368
commit 451cb25e4e
3 changed files with 31 additions and 0 deletions

@ -52,5 +52,6 @@ void multires_update_levels(Mesh *me);
void multires_level_to_mesh(Object *ob, Mesh *me);
void multires_calc_level_maps(MultiresLevel *lvl);
void multires_edge_level_update(void *ob, void *me);
int multires_modifier_warning();
#endif

@ -4802,6 +4802,12 @@ void editing_panel_mesh_multires()
uiDefButC(block,NUM,B_NOP,"Render: ",cx,cy,200,19,&me->mr->renderlvl,1.0,me->mr->level_count,0,0,"Set level to render");
cy-= 20;
if(multires_modifier_warning()) {
char *tip= "One or more modifiers are enabled that modify mesh topology";
uiDefIconBut(block,LABEL,B_NOP,ICON_ERROR, cx,cy,20,20, 0,0,0,0,0, tip);
uiDefBut(block,LABEL,B_NOP, "Cannot use render level", cx+20,cy,180,19, 0,0,0,0,0, tip);
}
}
}

@ -39,6 +39,7 @@
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_vec_types.h"
@ -47,6 +48,7 @@
#include "BKE_depsgraph.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BIF_screen.h"
#include "BIF_space.h"
@ -1366,3 +1368,25 @@ void multires_edge_level_update(void *ob, void *me_v)
allqueue(REDRAWVIEW3D, 0);
}
int multires_modifier_warning()
{
ModifierData *md;
for(md= modifiers_getVirtualModifierList(OBACT); md; md= md->next) {
if(md->mode & eModifierMode_Render) {
switch(md->type) {
case eModifierType_Subsurf:
case eModifierType_Build:
case eModifierType_Mirror:
case eModifierType_Decimate:
case eModifierType_Boolean:
case eModifierType_Array:
case eModifierType_EdgeSplit:
return 1;
}
}
}
return 0;
}