Author: ArcRiley
Date: 2007-07-03 21:39:33 -0400 (Tue, 03 Jul 2007)
New Revision: 338

Modified:
   trunk/pysoy/src/_core-common/Scene.pxi
   trunk/pysoy/src/_core-x11/soy._core.pxd
   trunk/pysoy/src/bodies.lights/Light.pxi
Log:
fixes for r337


Modified: trunk/pysoy/src/_core-common/Scene.pxi
===================================================================
--- trunk/pysoy/src/_core-common/Scene.pxi      2007-07-04 01:29:24 UTC (rev 
337)
+++ trunk/pysoy/src/_core-common/Scene.pxi      2007-07-04 01:39:33 UTC (rev 
338)
@@ -17,6 +17,8 @@
 #
 # $Id$
 
+cimport soy.bodies.lights
+
 cdef class Scene :
   '''PySoy Scene
 
@@ -70,16 +72,15 @@
 
   cdef void _render(self) :
     cdef int i
+    self._lights.lock()
+    for i from 0 <= i < self._lights.current :
+      (<soy.bodies.lights.Light> self._lights.list[i])._on(gl.GL_LIGHT0)
+    self._lights.unlock()
     self._bodies.lock()
     for i from 0 <= i < self._bodies.current :
       (<soy.bodies._bodies.Body> self._bodies.list[i])._render()
     self._bodies.unlock()
 
-    self._lights.lock()
-    for i from 0 <= i < self._lights.current :
-      (<soy.bodies._lights.Light> self._lights.list[i])._on()
-      (<soy.bodies._lights.Light> self._lights.list[i])._render()
-    self._lights.unlock()
 
 
   cdef int _steps(self) :

Modified: trunk/pysoy/src/_core-x11/soy._core.pxd
===================================================================
--- trunk/pysoy/src/_core-x11/soy._core.pxd     2007-07-04 01:29:24 UTC (rev 
337)
+++ trunk/pysoy/src/_core-x11/soy._core.pxd     2007-07-04 01:39:33 UTC (rev 
338)
@@ -27,9 +27,10 @@
 cimport soy.colors
 
 cdef class Scene :
-  cdef soy._internals.Children    _bodies
   cdef ode.dWorldID             _worldID
   cdef ode.dSpaceID             _spaceID
+  cdef soy._internals.Children  _bodies
+  cdef soy._internals.Children  _lights
   cdef ode.dReal                _stepSize
   cdef double                   _prevTime
   # _coreloop methods

Modified: trunk/pysoy/src/bodies.lights/Light.pxi
===================================================================
--- trunk/pysoy/src/bodies.lights/Light.pxi     2007-07-04 01:29:24 UTC (rev 
337)
+++ trunk/pysoy/src/bodies.lights/Light.pxi     2007-07-04 01:39:33 UTC (rev 
338)
@@ -62,9 +62,12 @@
       if not (isinstance(newscene, soy._core.Scene) or newscene==None) :
         raise TypeError('not an instance of soy.Scene')
       if self._isActive() :
+        self._scene._bodies.lock()
         self._scene._lights.lock()
+        self._scene._bodies.remove(<void *>self)
         self._scene._lights.remove(<void *>self)
         self._destroy()
+        self._scene._bodies.unlock()
         self._scene._lights.unlock()
         if self._shape :
           if self._scene :
@@ -72,9 +75,12 @@
           ode.dSpaceAdd((<soy._core.Scene> newscene)._spaceID, 
self._shape._geomID)
       if newscene != None :
         self._scene = newscene
+        self._scene._bodies.lock()
         self._scene._lights.lock()
         self._create()
+        self._scene._bodies.append(<void *>self)
         self._scene._lights.append(<void *>self)
+        self._scene._bodies.unlock()
         self._scene._lights.unlock()
 
   property ambient :

_______________________________________________
PySoy-SVN mailing list
[email protected]
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to