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