Author: ArcRiley
Date: 2008-03-07 10:47:12 -0500 (Fri, 07 Mar 2008)
New Revision: 1085

Modified:
   trunk/pysoy/src/_core/Window-x11.pxi
   trunk/pysoy/src/_datatypes/MaterialList.pxi
   trunk/pysoy/src/_datatypes/VertexList.pxi
   trunk/pysoy/src/_datatypes/soy._datatypes.pxd
   trunk/pysoy/src/meshes/Mesh.pxi
   trunk/pysoy/src/meshes/soy.meshes.pxd
Log:
Ticket #901 :
  * a number of fixes with Mesh and _datatypes


Modified: trunk/pysoy/src/_core/Window-x11.pxi
===================================================================
--- trunk/pysoy/src/_core/Window-x11.pxi        2008-03-07 15:45:23 UTC (rev 
1084)
+++ trunk/pysoy/src/_core/Window-x11.pxi        2008-03-07 15:47:12 UTC (rev 
1085)
@@ -106,8 +106,8 @@
     self._widgets._iterStart()
     for _i from 0 <= _i < self._widgets._current :
       if (<soy.widgets.Widget> self._widgets._list[_i])._topLevel :
-        (<soy.widgets.Widget> self._widgets._list[_i])._resize(0, 0,
-                                                               _width, _height)
+        (<soy.widgets.Widget>
+         self._widgets._list[_i])._resize(0, 0, _width, _height)
     self._widgets._iterDone()
 
 
@@ -206,12 +206,12 @@
     for _i from 0 <= _i < self._widgets._current :
       (<soy.widgets.Widget> self._widgets._list[_i])._coreRender()
     self._widgets._iterDone()
-    
+    #
+    # Disable states and swap :
     gl.glDisableClientState(gl.GL_VERTEX_ARRAY)
     gl.glDisableClientState(gl.GL_NORMAL_ARRAY)
     gl.glDisableClientState(gl.GL_TEXTURE_COORD_ARRAY)
     gl.glDisable(gl.GL_CULL_FACE)
-    gl.glFlush()
     glx.glXSwapBuffers(_display, self._windowID)
 
 

Modified: trunk/pysoy/src/_datatypes/MaterialList.pxi
===================================================================
--- trunk/pysoy/src/_datatypes/MaterialList.pxi 2008-03-07 15:45:23 UTC (rev 
1084)
+++ trunk/pysoy/src/_datatypes/MaterialList.pxi 2008-03-07 15:47:12 UTC (rev 
1085)
@@ -36,12 +36,11 @@
 
 
   def __dealloc__(self) :
-    cdef int i
-    py.PyThread_acquire_lock((<soy.meshes.Mesh> self._mesh)._mutex, 1)
-    for i from 0 <= i < self._children._current :
-      py.Py_DECREF(<object> self._children._list[i])
-    py.PyThread_release_lock((<soy.meshes.Mesh> self._mesh)._mutex)
-    
+    cdef int _i
+    self._children._iterStart()
+    for _i from 0 <= _i < self._children._current :
+      py.Py_DECREF(<object> self._children._list[_i])
+    self._children._iterDone()
 
 
   def __len__(self) :
@@ -116,7 +115,6 @@
       _mesh._verts._createBuffer()
 
     _mesh._faces._sendUpdated()
-
     _mesh._verts._coreRenderBufferBumpPass()
 
     py.PyThread_acquire_lock((<soy.meshes.Mesh> self._mesh)._mutex, 1)

Modified: trunk/pysoy/src/_datatypes/VertexList.pxi
===================================================================
--- trunk/pysoy/src/_datatypes/VertexList.pxi   2008-03-07 15:45:23 UTC (rev 
1084)
+++ trunk/pysoy/src/_datatypes/VertexList.pxi   2008-03-07 15:47:12 UTC (rev 
1085)
@@ -29,33 +29,33 @@
   def __cinit__(self, mesh) :
     if not isinstance(mesh, soy.meshes.Mesh) :
       raise TypeError('argument must be of type soy.bodies.Mesh')
-    self._mesh = <void*> mesh
-    self._children = soy._internals.Children()
+    self._mesh        = <void*> mesh
+    self._children    = soy._internals.Children()
     self._bufferAlloc = 0
-    self._mutex = mesh._mutex
 
+
   def __len__(self) :
     return self._arraySize
 
 
   def __str__(self) :
-    cdef int i
-    cdef object l
+    cdef int    _i
+    cdef object _l
     cdef soy.meshes.Mesh _mesh
-    l = []
+    _l = []
     self._children._startIter()
-    for i from 0 <= i < self._arraySize :
-      l.append({'position':(self._array[i].px,
-                            self._array[i].py,
-                            self._array[i].pz),
-                'normal'  :(self._array[i].nx,
-                            self._array[i].ny,
-                            self._array[i].nz),
-                'texcoord':(self._array[i].tx,
-                            self._array[i].ty,
-                            self._array[i].tz)})
+    for _i from 0 <= _i < self._arraySize :
+      _l.append({'position':(self._array[_i].px,
+                             self._array[_i].py,
+                             self._array[_i].pz),
+                 'normal'  :(self._array[_i].nx,
+                             self._array[_i].ny,
+                             self._array[_i].nz),
+                 'texcoord':(self._array[_i].tx,
+                             self._array[_i].ty,
+                             self._array[_i].tz)})
     self._children._iterDone()
-    return str(l)
+    return str(_l)
 
 
   def __repr__(self) :
@@ -101,35 +101,37 @@
     gl.glClientActiveTexture(gl.GL_TEXTURE1)
     gl.glDisableClientState(gl.GL_TEXTURE_COORD_ARRAY)
     gl.glClientActiveTexture(gl.GL_TEXTURE0)
-
+    #
     gl.glBindBufferARB  (gl.GL_ARRAY_BUFFER_ARB, self._buffer)
     self._sendUpdated()
-
+    #
     gl.glTexCoordPointer(3,  gl.GL_FLOAT, sizeof(Vert), <float*> 24)
     gl.glNormalPointer  (    gl.GL_FLOAT, sizeof(Vert), <float*> 12)
     gl.glVertexPointer  (3,  gl.GL_FLOAT, sizeof(Vert), <float*>  0)
     gl.glFogCoordPointerEXT( gl.GL_FLOAT,  0, <float*> (sizeof(Vert) * 
self._bufferAlloc))
 
+
   cdef void _coreRenderArrayBumpPass  (self) :
     gl.glVertexPointer  (3,  gl.GL_FLOAT, sizeof(Vert), &self._array[0].px)
     gl.glNormalPointer  (    gl.GL_FLOAT, sizeof(Vert), &self._array[0].nx)
     gl.glTexCoordPointer(3,  gl.GL_FLOAT, sizeof(Vert), &self._array[0].tx)
     gl.glFogCoordPointerEXT( gl.GL_FLOAT,  0, self._fogArray)
-
+    #
     gl.glClientActiveTexture(gl.GL_TEXTURE1)
     gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY)
     gl.glTexCoordPointer(3, gl.GL_FLOAT, 0, self._tslvArray)
     gl.glClientActiveTexture(gl.GL_TEXTURE0)
 
+
   cdef void _coreRenderBufferBumpPass (self) :
     gl.glBindBufferARB  (gl.GL_ARRAY_BUFFER_ARB, self._buffer)
     self._sendUpdated()
-
+    #
     gl.glNormalPointer  (    gl.GL_FLOAT, sizeof(Vert), <float*> 12)
     gl.glVertexPointer  (3,  gl.GL_FLOAT, sizeof(Vert), <float*>  0)
     gl.glFogCoordPointerEXT( gl.GL_FLOAT,  0, <float*> (sizeof(Vert) * 
self._bufferAlloc))
     gl.glTexCoordPointer(3,  gl.GL_FLOAT, sizeof(Vert), <float*> 24)
-
+    #
     gl.glClientActiveTexture(gl.GL_TEXTURE1)
     gl.glEnableClientState(gl.GL_TEXTURE_COORD_ARRAY)
     gl.glTexCoordPointer(3, gl.GL_FLOAT, 0, <float*> ( 
(sizeof(Vert)+sizeof(float)) * self._bufferAlloc))

Modified: trunk/pysoy/src/_datatypes/soy._datatypes.pxd
===================================================================
--- trunk/pysoy/src/_datatypes/soy._datatypes.pxd       2008-03-07 15:45:23 UTC 
(rev 1084)
+++ trunk/pysoy/src/_datatypes/soy._datatypes.pxd       2008-03-07 15:47:12 UTC 
(rev 1085)
@@ -80,10 +80,10 @@
 
 
 cdef class FaceList (Datatype) :
-  cdef void                      *_mesh
+  cdef void*                      _mesh
   cdef soy._internals.Children    _children
-  cdef Face                      *_array
-  cdef unsigned int              *_arrayList
+  cdef Face*                      _array
+  cdef unsigned int*              _arrayList
   cdef unsigned int               _arraySize
   cdef int                        _arrayAlloc
   cdef gl.GLuint                  _buffer
@@ -100,12 +100,12 @@
 
 
 cdef class VertexList (Datatype) :
-  cdef void                      *_mesh
+  cdef void*                      _mesh
   cdef soy._internals.Children    _children
-  cdef Vert                      *_array
-  cdef float                     *_fogArray
+  cdef Vert*                      _array
+  cdef float*                     _fogArray
   cdef int                        _fogSize
-  cdef float                     *_tslvArray
+  cdef float*                     _tslvArray
   cdef int                        _tslvSize
   cdef unsigned short             _arraySize
   cdef int                        _arrayAlloc
@@ -122,4 +122,3 @@
   cdef void                       _flagUpdated  (self, int)
   cdef void                       _uploadFogCoord(self, float)
   cdef void                       _calculateTSLV(self, void* body) #Tangent 
Space Light Vector
-

Modified: trunk/pysoy/src/meshes/Mesh.pxi
===================================================================
--- trunk/pysoy/src/meshes/Mesh.pxi     2008-03-07 15:45:23 UTC (rev 1084)
+++ trunk/pysoy/src/meshes/Mesh.pxi     2008-03-07 15:47:12 UTC (rev 1085)
@@ -75,13 +75,18 @@
   # various order-based optimization routines run, etc).  
 
   def __cinit__(self, *args, **keywords) :
+    self._mutex = py.PyThread_allocate_lock()
+    stdio.printf('1\n')
     self._mates = soy._datatypes.MaterialList(self)
+    stdio.printf('2\n')
     self._faces = soy._datatypes.FaceList(self)
+    stdio.printf('3\n')
     self._verts = soy._datatypes.VertexList(self)
-    self._mutex = py.PyThread_allocate_lock()
+    stdio.printf('4\n')
 
 
   def __dealloc__(self) :
+    stdio.printf('WTF\n')
     py.PyThread_free_lock(self._mutex)
 
 

Modified: trunk/pysoy/src/meshes/soy.meshes.pxd
===================================================================
--- trunk/pysoy/src/meshes/soy.meshes.pxd       2008-03-07 15:45:23 UTC (rev 
1084)
+++ trunk/pysoy/src/meshes/soy.meshes.pxd       2008-03-07 15:47:12 UTC (rev 
1085)
@@ -28,10 +28,10 @@
 cimport soy.shapes
 
 cdef class Mesh :
+  cdef void*                        _mutex
   cdef soy._datatypes.MaterialList  _mates
   cdef soy._datatypes.FaceList      _faces
   cdef soy._datatypes.VertexList    _verts
-  cdef void*                        _mutex
   cdef void                         _coreRender        ( self, void* )
 
 cdef class Shape (Mesh) :

_______________________________________________
PySoy-SVN mailing list
PySoy-SVN@pysoy.org
http://www.pysoy.org/mailman/listinfo/pysoy-svn

Reply via email to