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:
@@ -52,5 +52,6 @@ void multires_update_levels(Mesh *me);
|
|||||||
void multires_level_to_mesh(Object *ob, Mesh *me);
|
void multires_level_to_mesh(Object *ob, Mesh *me);
|
||||||
void multires_calc_level_maps(MultiresLevel *lvl);
|
void multires_calc_level_maps(MultiresLevel *lvl);
|
||||||
void multires_edge_level_update(void *ob, void *me);
|
void multires_edge_level_update(void *ob, void *me);
|
||||||
|
int multires_modifier_warning();
|
||||||
|
|
||||||
#endif
|
#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");
|
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;
|
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_mesh_types.h"
|
||||||
#include "DNA_meshdata_types.h"
|
#include "DNA_meshdata_types.h"
|
||||||
|
#include "DNA_modifier_types.h"
|
||||||
#include "DNA_object_types.h"
|
#include "DNA_object_types.h"
|
||||||
#include "DNA_scene_types.h"
|
#include "DNA_scene_types.h"
|
||||||
#include "DNA_vec_types.h"
|
#include "DNA_vec_types.h"
|
||||||
@@ -47,6 +48,7 @@
|
|||||||
#include "BKE_depsgraph.h"
|
#include "BKE_depsgraph.h"
|
||||||
#include "BKE_global.h"
|
#include "BKE_global.h"
|
||||||
#include "BKE_mesh.h"
|
#include "BKE_mesh.h"
|
||||||
|
#include "BKE_modifier.h"
|
||||||
|
|
||||||
#include "BIF_screen.h"
|
#include "BIF_screen.h"
|
||||||
#include "BIF_space.h"
|
#include "BIF_space.h"
|
||||||
@@ -1366,3 +1368,25 @@ void multires_edge_level_update(void *ob, void *me_v)
|
|||||||
|
|
||||||
allqueue(REDRAWVIEW3D, 0);
|
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;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user