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