dont draw face dots when solidtex is enabled - added a macro to check this.
relax pose was crashing - missing a check.
This commit is contained in:
@@ -313,7 +313,16 @@ extern Object workob;
|
|||||||
#define OB_TEXTURE 5
|
#define OB_TEXTURE 5
|
||||||
|
|
||||||
/* this condition has been made more complex since editmode can draw textures */
|
/* this condition has been made more complex since editmode can draw textures */
|
||||||
#define CHECK_OB_DRAWTEXTURE(vd, dt) ((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || (vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
|
#define CHECK_OB_DRAWTEXTURE(vd, dt) \
|
||||||
|
((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || \
|
||||||
|
(vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
|
||||||
|
|
||||||
|
#define CHECK_OB_DRAWFACEDOT(sce, vd, dt) \
|
||||||
|
( (sce->selectmode & SCE_SELECT_FACE) && \
|
||||||
|
(vd->drawtype<=OB_SOLID) && \
|
||||||
|
(((vd->drawtype==OB_SOLID) && (dt>=OB_SOLID) && (vd->flag2 & V3D_SOLID_TEX) && (vd->flag & V3D_ZBUF_SELECT)) == 0) \
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
/* dtx: flags, char! */
|
/* dtx: flags, char! */
|
||||||
#define OB_AXIS 2
|
#define OB_AXIS 2
|
||||||
|
@@ -1698,9 +1698,7 @@ static void draw_em_fancy_verts(EditMesh *em, DerivedMesh *cageDM, EditVert *eve
|
|||||||
draw_dm_verts(cageDM, sel, eve_act);
|
draw_dm_verts(cageDM, sel, eve_act);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( (G.scene->selectmode & SCE_SELECT_FACE) &&
|
if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) {
|
||||||
(G.vd->drawtype<=OB_SOLID)
|
|
||||||
) {
|
|
||||||
glPointSize(fsize);
|
glPointSize(fsize);
|
||||||
glColor4ubv((GLubyte *)fcol);
|
glColor4ubv((GLubyte *)fcol);
|
||||||
draw_dm_face_centers(cageDM, sel);
|
draw_dm_face_centers(cageDM, sel);
|
||||||
@@ -5329,9 +5327,7 @@ static int bbs_mesh_solid_EM(DerivedMesh *dm, int facecol)
|
|||||||
if (facecol) {
|
if (facecol) {
|
||||||
dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(long) 1, 0);
|
dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(long) 1, 0);
|
||||||
|
|
||||||
if( (G.scene->selectmode & SCE_SELECT_FACE) &&
|
if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) {
|
||||||
(G.vd->drawtype<=OB_SOLID)
|
|
||||||
) {
|
|
||||||
glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
|
glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
|
||||||
|
|
||||||
bglBegin(GL_POINTS);
|
bglBegin(GL_POINTS);
|
||||||
|
@@ -714,7 +714,7 @@ static void unified_select_draw(EditVert *eve, EditEdge *eed, EditFace *efa)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(G.scene->selectmode & SCE_SELECT_FACE && (G.vd->drawtype!=OB_TEXTURE)) {
|
if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) {
|
||||||
if(efa->fgonf==0) {
|
if(efa->fgonf==0) {
|
||||||
glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
|
glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
|
||||||
BIF_ThemeColor((efa->f & SELECT)?TH_FACE_DOT:TH_WIRE);
|
BIF_ThemeColor((efa->f & SELECT)?TH_FACE_DOT:TH_WIRE);
|
||||||
|
@@ -1168,7 +1168,7 @@ void pose_relax()
|
|||||||
if(pchan->bone->flag & BONE_SELECTED) {
|
if(pchan->bone->flag & BONE_SELECTED) {
|
||||||
/* do we have an ipo curve? */
|
/* do we have an ipo curve? */
|
||||||
achan= get_action_channel(act, pchan->name);
|
achan= get_action_channel(act, pchan->name);
|
||||||
if(achan->ipo) {
|
if(achan && achan->ipo) {
|
||||||
/*calc_ipo(achan->ipo, ctime);*/
|
/*calc_ipo(achan->ipo, ctime);*/
|
||||||
do_loc += pose_relax_icu(find_ipocurve(achan->ipo, AC_LOC_X), framef, &pchan->loc[0], NULL, NULL);
|
do_loc += pose_relax_icu(find_ipocurve(achan->ipo, AC_LOC_X), framef, &pchan->loc[0], NULL, NULL);
|
||||||
do_loc += pose_relax_icu(find_ipocurve(achan->ipo, AC_LOC_Y), framef, &pchan->loc[1], NULL, NULL);
|
do_loc += pose_relax_icu(find_ipocurve(achan->ipo, AC_LOC_Y), framef, &pchan->loc[1], NULL, NULL);
|
||||||
|
Reference in New Issue
Block a user