Fix armature stick draw, unpack-alignment was set but never restored
Drawing a single stick bone set the alignment to 1, applying this setting to the rest of Blender.
This commit is contained in:
parent
b41cfb590c
commit
69bf7a44aa
|
@ -986,10 +986,11 @@ static GLubyte bm_dot7[] = {0x0, 0x38, 0x7C, 0xFE, 0xFE, 0xFE, 0x7C, 0x38};
|
|||
static void draw_line_bone(int armflag, int boneflag, short constflag, unsigned int id,
|
||||
bPoseChannel *pchan, EditBone *ebone)
|
||||
{
|
||||
/* call this once, avoid constant changing */
|
||||
BLI_assert(glaGetOneInt(GL_UNPACK_ALIGNMENT) == 1);
|
||||
|
||||
float length;
|
||||
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
if (pchan)
|
||||
length = pchan->bone->length;
|
||||
else
|
||||
|
@ -2699,6 +2700,11 @@ bool draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
|
|||
if (v3d->flag2 & V3D_RENDER_OVERRIDE)
|
||||
return true;
|
||||
|
||||
/* needed for 'draw_line_bone' which draws pixel. */
|
||||
if (arm->drawtype == ARM_LINE) {
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
}
|
||||
|
||||
if (dt > OB_WIRE) {
|
||||
/* we use color for solid lighting */
|
||||
if (ELEM(arm->drawtype, ARM_LINE, ARM_WIRE)) {
|
||||
|
@ -2774,5 +2780,9 @@ bool draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
|
|||
/* restore */
|
||||
glFrontFace(GL_CCW);
|
||||
|
||||
if (arm->drawtype == ARM_LINE) {
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue