Dear soya-users,
I think I've found the bug and a fix; it's in face.pyx. In some cases
the normal is set, but not restored. I've used the glPushAttrib() /
glPopAttrib() pair to save and then restore the state. My OpenGL
knowledge is extremely limited, and I don't know if this is the
correct approach.
The diff is attached.
Regards,
Rory
*** face.pyx.~1.14.~ 2005-07-30 12:00:06.000000000 +0200
--- face.pyx 2005-10-29 16:34:17.000000000 +0200
***************
*** 305,310 ****
--- 305,312 ----
glDisable(GL_CULL_FACE)
self._compute_normal()
+
+ glPushAttrib(GL_CURRENT_BIT)
if not self._normal is None: glNormal3fv(self._normal._matrix)
if i == 1: glBegin(GL_POINTS)
***************
*** 315,320 ****
--- 317,323 ----
for vertex in self._vertices: vertex._render(self._parent)
glEnd()
+ glPopAttrib()
if self._option & FACE2_DOUBLE_SIDED:
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE)