forked from bartvdbraak/blender
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:
parent
662ce4a368
commit
451cb25e4e
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user