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)

Reply via email to