Package: python-soya
Version: 0.13.2-4
Severity: serious
Tags: patch
soya lacks a build-dependency on python-pyrex, which causes the build
system skips building the pyx files in the distribution (it uses
precompiled files instead). As a result, the pyx files have bitrotted
and no longer build with current pyrex.
The attached patch, taken from Soya SVN (revision 391), fixes this.
However, the version of pyrex in Debian generates broken code
(#483035), so you should wait with uploading until that bug is fixed.
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.26-1-amd64 (SMP w/1 CPU core)
Locale: LANG=nl_BE.UTF-8, LC_CTYPE=nl_BE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages python-soya depends on:
ii libc6 2.7-13 GNU C Library: Shared libraries
ii libcal3d12 0.11.0-3 Skeletal based 3d character animat
ii libfreetype6 2.3.7-2 FreeType 2 font engine, shared lib
ii libglew1.5 1.5.0dfsg1-3 The OpenGL Extension Wrangler - ru
ii libode0debian1 2:0.9-1 Open Dynamics Engine - runtime lib
ii libopenal1 1:1.4.272-2 Software implementation of the Ope
ii libsdl1.2debian 1.2.13-2 Simple DirectMedia Layer
ii libstdc++6 4.3.1-9 The GNU Standard C++ Library v3
ii python 2.5.2-2 An interactive high-level object-o
ii python-editobj 0.5.7-7 Python object editor
ii python-imaging-tk 1.1.6-3 Python Imaging Library - ImageTk M
ii python-support 0.8.5 automated rebuilding support for P
ii python-twisted-core 8.1.0-3 Event-based framework for internet
ii ttf-freefont 20080323-3 Freefont Serif, Sans and Mono True
python-soya recommends no packages.
Versions of packages python-soya suggests:
pn python-soya-doc <none> (no description available)
-- no debconf information
--- a/text/text.pyx
+++ b/text/text.pyx
@@ -152,7 +152,7 @@
for j from 0 <= j < bitmap.rows: # get pixels
memcpy(self._pixels + self._current_x +
(self._current_y + j) * MAX_TEXTURE_SIZE, bitmap.buffer + bitmap.pitch * j,
bitmap.pitch)
- self._current_x = <int> (self._current_x + glyph.width + 5.)
+ self._current_x = self._current_x + (<int> glyph.width) + 5
glBindTexture(GL_TEXTURE_2D, self._tex_id)
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
--- a/cal3d/model.pyx
+++ b/cal3d/model.pyx
@@ -685,8 +685,11 @@
CalCoreModel_CreateCoreMaterialThread(self._core_model,
i)
CalCoreModel_SetCoreMaterialId(self._core_model, i, 0,
i)
CalCoreMaterial_SetUserData(material, <CalUserData> i)
-
- CalRenderer_GetMapUserData
+
+ # Greg Ewing, March 2007 ([EMAIL PROTECTED])
+ # Following line commented out as it wasn't doing anything and
was causing
+ # a compiler warning. POSSIBLE BUG.
+ #CalRenderer_GetMapUserData
# This method is split in 3 ; this is a work-around for a bug in Pyrex
--- a/opengl.pyx
+++ b/opengl.pyx
@@ -22,6 +22,7 @@
include "python.pxd"
cimport c_opengl
+from c_opengl cimport GLenum, GLuint
GL_FALSE = c_opengl.GL_FALSE
GL_TRUE = c_opengl.GL_TRUE
@@ -844,9 +845,8 @@
c_opengl.glScalef(x,y,z)
def glGenTextures(int n):
- cdef unsigned int ret
+ cdef GLuint ret
c_opengl.glGenTextures(n,&ret)
-
return ret
def glBindTexture(int target, unsigned int texture):
@@ -864,7 +864,7 @@
def glMatrixMode(int mode):
c_opengl.glMatrixMode(mode)
-def glMultMatrix(float mode):
+def glMultMatrix(GLenum mode):
c_opengl.glMultMatrix(mode)
def glTexParameteri(int target, int param, int value):
--- a/definitions/model/terrain.pxd
+++ b/definitions/model/terrain.pxd
@@ -54,7 +54,7 @@
int texcoord_type # 0: use terrainvertex texcoord, 1, 2, 3, 4:
the tri use a texture generated (from blend_material), and the texcoord are
(0.0, 0.0) - (1.0, 1.0)
ctypedef _TerrainTri TerrainTri
-ctypedef void (*terrain_drawColor_FUNC )(float*)
+ctypedef void (*terrain_drawColor_FUNC )(GLfloat*)
ctypedef void (*terrain_disableColor_FUNC)()
ctypedef void (*terrain_enableColor_FUNC )()
--- a/definitions/base.pxd
+++ b/definitions/base.pxd
@@ -238,29 +238,30 @@
NETWORK_STATE_HAS_POSITION = 1 << 0
NETWORK_STATE_HAS_SCALING = 1 << 1
-ctypedef struct Frustum:
-## Frustum
-## points :
-## 15-------12
-## |\ /|
-## | \ / |
-## | 3---0 |
-## | | | |
-## | 6---9 |
-## | / \ |
-## |/ \|
-## 18-------21
-##
-## plane[ 0] : front plane
-## plane[ 4] : top plane
-## plane[ 8] : bottom plane
-## plane[12] : right plane
-## plane[16] : left plane
-## plane[20] : back plane
-## plane normals are oriented toward the exterior of the frustum
- float position[3] # camera position (x,y,z)
- float points [24] # points : (x,y,z) * 8
- float planes [24] # planes equation : (a,b,c,d) * 6
+cdef extern from "matrix.h":
+ ctypedef struct Frustum:
+ ## Frustum
+ ## points :
+ ## 15-------12
+ ## |\ /|
+ ## | \ / |
+ ## | 3---0 |
+ ## | | | |
+ ## | 6---9 |
+ ## | / \ |
+ ## |/ \|
+ ## 18-------21
+ ##
+ ## plane[ 0] : front plane
+ ## plane[ 4] : top plane
+ ## plane[ 8] : bottom plane
+ ## plane[12] : right plane
+ ## plane[16] : left plane
+ ## plane[20] : back plane
+ ## plane normals are oriented toward the exterior of the frustum
+ float position[3] # camera position (x,y,z)
+ float points [24] # points : (x,y,z) * 8
+ float planes [24] # planes equation : (a,b,c,d) * 6
cdef struct _Pack: # See material.pyx for doc and comments
int option
--- a/definitions/ode/ctype.pxd
+++ b/definitions/ode/ctype.pxd
@@ -15,6 +15,8 @@
# author:
# edited by Marmoute - Pierre-Yves David - [EMAIL PROTECTED]
+#cdef extern from "ode_check.h":
+# pass
cdef extern from "ode/ode.h":
--- a/c.pxd
+++ b/c.pxd
@@ -34,7 +34,7 @@
float sin (float x)
float tan (float x)
float exp (float x)
- float pow (float x, int n)
+ float pow (float x, float n)
float ceil (float x)
float floor (float x)
--- a/init.pyx
+++ b/init.pyx
@@ -237,7 +237,7 @@
renderer.screen_width = width
renderer.screen_height = height
# Information about the current video settings
- info = SDL_GetVideoInfo()
+ info = <SDL_VideoInfo*> SDL_GetVideoInfo() # cast for constness
adjustment
if info == NULL:
s = "Video query failed : %s" % SDL_GetError()
print s
--- a/chunk.c
+++ b/chunk.c
@@ -472,4 +472,3 @@
dat2.b[3] = dat1.b[0];
return dat2.f;
}
-
--- a/soya3d/light.pyx
+++ b/soya3d/light.pyx
@@ -33,7 +33,7 @@
##cdef int _used
#cdef _static_shadow_displaylists
- def __new__(self, *args, **kargs):
+ def __cinit__(self, *args, **kargs):
self.__raypick_data = -1
self._id = -1
self._static_shadow_displaylists = weakref.WeakKeyDictionary()
@@ -401,11 +401,11 @@
glEnable(GL_LIGHT0 + light._id)
light._gl_id_enabled = 1
-cdef void disable_deep_lights():
- """Disable all non top level lights."""
- cdef _Light light
- for light in LIGHTS:
- if (not light is None) and (light._option & LIGHT_TOP_LEVEL)
and (light._gl_id_enabled == 1):
- glDisable(GL_LIGHT0 + i)
- light._gl_id_enabled = 0
+#U#cdef void disable_deep_lights():
+#U# """Disable all non top level lights."""
+#U# cdef _Light light
+#U# for light in LIGHTS:
+#U# if (not light is None) and (light._option & LIGHT_TOP_LEVEL)
and (light._gl_id_enabled == 1):
+#U# glDisable(GL_LIGHT0 + i)
+#U# light._gl_id_enabled = 0
--- a/soya3d/world.pyx
+++ b/soya3d/world.pyx
@@ -417,8 +417,14 @@
# return item in self.children
def __getitem__(self, name):
cdef CoordSyst item, i
+ cdef object name_attr
for item in self.children:
- if getattr(item, "name", "") == name: return item
+ try:
+ name_attr = getattr(item, "name")
+ except:
+ name_attr = ""
+ if name_attr == name:
+ return item
for item in self.children:
if isinstance(item, _World):
i = item[name]
--- a/soya3d/camera.pyx
+++ b/soya3d/camera.pyx
@@ -25,7 +25,7 @@
#cdef int _viewport[4]
#cdef _master
- def __new__(self, *args, **kargs):
+ def __cinit__(self, *args, **kargs):
self.__raypick_data = -1
self._render_matrix[15] = 1.0
self._frustum = <Frustum*> malloc(sizeof(Frustum))
--- a/soya3d/coordsyst.pyx
+++ b/soya3d/coordsyst.pyx
@@ -83,7 +83,7 @@
#cdef int _option
#cdef int _auto_static_count
- def __new__(self, *args, **kargs):
+ def __cinit__(self, *args, **kargs):
self.__raypick_data = -1
self._auto_static_count = 3
--- a/soya3d/body.pyx
+++ b/soya3d/body.pyx
@@ -71,12 +71,12 @@
# pos vector (3) # XXX ignored for the
moment
# quaternion quaternion # XXX use a self-relativ
cordinate later
# linear speed vector (3) # XXX idem
- v = dBodyGetLinearVel(bid)
+ v = <dReal*> dBodyGetLinearVel(bid) # Cast for const
correction
vector_by_matrix(vector,
self._ode_parent._root_matrix())
vector_by_matrix(vector, self._inverted_root_matrix())
chunk_add_floats_endian_safe(ode_chunk,v,3)
# angular speed vector (3) # XXX idem
- v = dBodyGetAngularVel(bid)
+ v = <dReal*> dBodyGetAngularVel(bid) # Cast for const
correction
vector_by_matrix(v, self._ode_parent._root_matrix())
vector_by_matrix(v, self._inverted_root_matrix())
chunk_add_floats_endian_safe(ode_chunk,v,3)
@@ -110,7 +110,7 @@
if self._option & BODY_HAS_ODE:
self.__ode_data = cstate[3]
self.joints = cstate[4]
- self._option & BODY_HAS_ODE
+ #self._option & BODY_HAS_ODE
self._option = self._option &
~BODY_HAS_ODE
else:
self.__ode_data = None
@@ -464,13 +464,17 @@
cdef void _sync_ode_position(self):
- cdef GLfloat * m
+ # Greg Ewing, March 2007 ([EMAIL PROTECTED])
+ # multiply_matrix was being passed an uninitialised pointer
+ cdef GLfloat ma[19]
+ cdef GLfloat *m
cdef dMatrix3 R
cdef dReal * q
if self.parent is self.ode_parent:
m = self._matrix
else:
+ m = ma
multiply_matrix(m,
self._ode_parent._inverted_root_matrix(), self._root_matrix())
R[0] = m[0]
R[1] = m[4]
@@ -490,13 +494,13 @@
dBodySetPosition(self._OdeBodyID, m[12], m[13], m[14])
dBodySetRotation(self._OdeBodyID, R)
- q = dBodyGetQuaternion(self._OdeBodyID)
+ q = <dReal*> dBodyGetQuaternion(self._OdeBodyID) # Cast for
const correction
self._q[0] = q[1]
self._q[1] = q[2]
self._q[2] = q[3]
self._q[3] = q[0]
- q = dBodyGetPosition(self._OdeBodyID)
+ q = <dReal*> dBodyGetPosition(self._OdeBodyID) # Cast for const
correction
self._p[0] = q[0]
self._p[1] = q[1]
self._p[2] = q[2]
@@ -518,13 +522,13 @@
self._t = 0
if self._option & BODY_ODE_INVALIDE_POS:
self._sync_ode_position()
- q = dBodyGetQuaternion(self._OdeBodyID)
+ q = <dReal*> dBodyGetQuaternion(self._OdeBodyID) # Cast
for const correction
self._q[0] = q[1]
self._q[1] = q[2]
self._q[2] = q[3]
self._q[3] = q[0]
- q = dBodyGetPosition(self._OdeBodyID)
+ q = <dReal*> dBodyGetPosition(self._OdeBodyID) # Cast
for const correction
self._p[0] = q[0]
self._p[1] = q[1]
self._p[2] = q[2]
@@ -560,8 +564,8 @@
#saving the scale of the object
#XXX optimisable
memcpy(&zoom[0],&self._matrix[16],3*sizeof(float))
- r = dBodyGetQuaternion(self._OdeBodyID)
- p = dBodyGetPosition(self._OdeBodyID)
+ r = <dReal*>
dBodyGetQuaternion(self._OdeBodyID) # Cast for const correction
+ p = <dReal*>
dBodyGetPosition(self._OdeBodyID) # Cast for const correction
t = 1.0 - self._t
# Linearly interpolate between the
current quaternion and the last
--- a/cal3d_wrapper.h
+++ b/cal3d_wrapper.h
@@ -188,7 +188,7 @@
// CalCoreAnimation wrapper functions declaration
//
//****************************************************************************//
- CAL3D_WRAPPER_API struct CalCoreAnimation *CalCoreAnimation_New();
+ CAL3D_WRAPPER_API struct CalCoreAnimation *CalCoreAnimation_New(void);
CAL3D_WRAPPER_API void CalCoreAnimation_Delete(struct CalCoreAnimation
*self);
CAL3D_WRAPPER_API void CalCoreAnimation_AddCoreTrack(struct CalCoreAnimation
*self, struct CalCoreTrack *pCoreTrack);
@@ -231,7 +231,7 @@
CAL3D_WRAPPER_API struct CalQuaternion *CalCoreKeyframe_GetRotation(struct
CalCoreKeyframe *self);
CAL3D_WRAPPER_API float CalCoreKeyframe_GetTime(struct CalCoreKeyframe
*self);
CAL3D_WRAPPER_API struct CalVector *CalCoreKeyframe_GetTranslation(struct
CalCoreKeyframe *self);
- CAL3D_WRAPPER_API struct CalCoreKeyframe *CalCoreKeyframe_New();
+ CAL3D_WRAPPER_API struct CalCoreKeyframe *CalCoreKeyframe_New(void);
CAL3D_WRAPPER_API void CalCoreKeyframe_SetRotation(struct CalCoreKeyframe
*self, struct CalQuaternion *pRotation);
CAL3D_WRAPPER_API void CalCoreKeyframe_SetTime(struct CalCoreKeyframe *self,
float time);
CAL3D_WRAPPER_API void CalCoreKeyframe_SetTranslation(struct CalCoreKeyframe
*self, struct CalVector *pTranslation);
@@ -240,7 +240,7 @@
// CalCoreMaterial wrapper functions declaration
//
//****************************************************************************//
- CAL3D_WRAPPER_API struct CalCoreMaterial *CalCoreMaterial_New();
+ CAL3D_WRAPPER_API struct CalCoreMaterial *CalCoreMaterial_New(void);
CAL3D_WRAPPER_API void CalCoreMaterial_Delete(struct CalCoreMaterial *self);
// CAL3D_WRAPPER_API CalCoreMaterial::Color
*CalCoreMaterial_GetAmbientColor(struct CalCoreMaterial *self);
@@ -265,7 +265,7 @@
// CalCoreMesh wrapper functions declaration
//
//****************************************************************************//
- CAL3D_WRAPPER_API struct CalCoreMesh *CalCoreMesh_New();
+ CAL3D_WRAPPER_API struct CalCoreMesh *CalCoreMesh_New(void);
CAL3D_WRAPPER_API void CalCoreMesh_Delete(struct CalCoreMesh *self);
CAL3D_WRAPPER_API int CalCoreMesh_AddCoreSubmesh(struct CalCoreMesh *self,
struct CalCoreSubmesh *pCoreSubmesh);
@@ -308,7 +308,7 @@
// CalCoreSkeleton wrapper functions declaration
//
//****************************************************************************//
- CAL3D_WRAPPER_API struct CalCoreSkeleton *CalCoreSkeleton_New();
+ CAL3D_WRAPPER_API struct CalCoreSkeleton *CalCoreSkeleton_New(void);
CAL3D_WRAPPER_API void CalCoreSkeleton_Delete(struct CalCoreSkeleton* self);
CAL3D_WRAPPER_API int CalCoreSkeleton_AddCoreBone(struct CalCoreSkeleton
*self, struct CalCoreBone *pCoreBone);
@@ -334,7 +334,7 @@
// CAL3D_WRAPPER_API
std::vector<std::vector<CalCoreSubmesh::TextureCoordinate> >&
CalCoreSubmesh_GetVectorVectorTextureCoordinate(struct CalCoreSubmesh *self);
// CAL3D_WRAPPER_API std::vector<CalCoreSubmesh::Vertex>&
CalCoreSubmesh_GetVectorVertex(struct CalCoreSubmesh *self);
CAL3D_WRAPPER_API int CalCoreSubmesh_GetVertexCount(struct CalCoreSubmesh
*self);
- CAL3D_WRAPPER_API struct CalCoreSubmesh *CalCoreSubmesh_New();
+ CAL3D_WRAPPER_API struct CalCoreSubmesh *CalCoreSubmesh_New(void);
CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_Reserve(struct CalCoreSubmesh
*self, int vertexCount, int textureCoordinateCount, int faceCount, int
springCount);
CAL3D_WRAPPER_API void CalCoreSubmesh_SetCoreMaterialThreadId(struct
CalCoreSubmesh *self, int coreMaterialThreadId);
// CAL3D_WRAPPER_API enum Boolean CalCoreSubmesh_SetFace(struct
CalCoreSubmesh *self, int faceId, struct CalCoreSubmesh::Face *pFace);
@@ -355,7 +355,7 @@
CAL3D_WRAPPER_API int CalCoreTrack_GetCoreBoneId(struct CalCoreTrack *self);
// CAL3D_WRAPPER_API std::map<float, CalCoreKeyframe *>&
CalCoreTrack_GetMapCoreKeyframe(struct CalCoreTrack *self);
CAL3D_WRAPPER_API enum Boolean CalCoreTrack_GetState(struct CalCoreTrack
*self, float time, struct CalVector *pTranslation, struct CalQuaternion
*pRotation);
- CAL3D_WRAPPER_API struct CalCoreTrack *CalCoreTrack_New();
+ CAL3D_WRAPPER_API struct CalCoreTrack *CalCoreTrack_New(void);
CAL3D_WRAPPER_API enum Boolean CalCoreTrack_SetCoreBoneId(struct
CalCoreTrack *self, int coreBoneId);
//****************************************************************************//
@@ -385,19 +385,19 @@
ERROR_CODE_MAX_ERROR_CODE
};
- CAL3D_WRAPPER_API enum CalErrorCode CalError_GetLastErrorCode();
- CAL3D_WRAPPER_API char *CalError_GetLastErrorDescription();
- CAL3D_WRAPPER_API char *CalError_GetLastErrorFile();
- CAL3D_WRAPPER_API int CalError_GetLastErrorLine();
- CAL3D_WRAPPER_API char *CalError_GetLastErrorText();
- CAL3D_WRAPPER_API void CalError_PrintLastError();
+ CAL3D_WRAPPER_API enum CalErrorCode CalError_GetLastErrorCode(void);
+ CAL3D_WRAPPER_API char *CalError_GetLastErrorDescription(void);
+ CAL3D_WRAPPER_API char *CalError_GetLastErrorFile(void);
+ CAL3D_WRAPPER_API int CalError_GetLastErrorLine(void);
+ CAL3D_WRAPPER_API char *CalError_GetLastErrorText(void);
+ CAL3D_WRAPPER_API void CalError_PrintLastError(void);
// CAL3D_WRAPPER_API void CalError_SetLastError(enum CalErrorCode code, char
*strFile, int line, char *strText);
//****************************************************************************//
// CalLoader wrapper functions declaration
//
//****************************************************************************//
- CAL3D_WRAPPER_API struct CalLoader *CalLoader_New();
+ CAL3D_WRAPPER_API struct CalLoader *CalLoader_New(void);
CAL3D_WRAPPER_API void CalLoader_Delete(struct CalLoader *self);
CAL3D_WRAPPER_API struct CalCoreAnimation
*CalLoader_LoadCoreAnimation(struct CalLoader *self, char *strFilename);
CAL3D_WRAPPER_API struct CalCoreMaterial *CalLoader_LoadCoreMaterial(struct
CalLoader *self, char *strFilename);
@@ -481,7 +481,7 @@
CAL3D_WRAPPER_API float *CalQuaternion_Get(struct CalQuaternion *self);
CAL3D_WRAPPER_API void CalQuaternion_Multiply(struct CalQuaternion *self,
struct CalQuaternion *pQ);
CAL3D_WRAPPER_API void CalQuaternion_MultiplyVector(struct CalQuaternion
*self, struct CalVector *pV);
- CAL3D_WRAPPER_API struct CalQuaternion *CalQuaternion_New();
+ CAL3D_WRAPPER_API struct CalQuaternion *CalQuaternion_New(void);
CAL3D_WRAPPER_API void CalQuaternion_Op_Multiply(struct CalQuaternion
*pResult, struct CalQuaternion *pQ, struct CalQuaternion *pR);
CAL3D_WRAPPER_API void CalQuaternion_Set(struct CalQuaternion *self, float
qx, float qy, float qz, float qw);
@@ -518,7 +518,7 @@
//****************************************************************************//
CAL3D_WRAPPER_API void CalSaver_Delete(struct CalSaver *self);
- CAL3D_WRAPPER_API struct CalSaver *CalSaver_New();
+ CAL3D_WRAPPER_API struct CalSaver *CalSaver_New(void);
CAL3D_WRAPPER_API enum Boolean CalSaver_SaveCoreAnimation(struct CalSaver
*self, char *strFilename, struct CalCoreAnimation *pCoreAnimation);
CAL3D_WRAPPER_API enum Boolean CalSaver_SaveCoreMaterial(struct CalSaver
*self, char *strFilename, struct CalCoreMaterial *pCoreMaterial);
CAL3D_WRAPPER_API enum Boolean CalSaver_SaveCoreMesh(struct CalSaver *self,
char *strFilename, struct CalCoreMesh *pCoreMesh);
@@ -584,7 +584,7 @@
CAL3D_WRAPPER_API void CalVector_InverseScale(struct CalVector *self, float
d);
CAL3D_WRAPPER_API float *CalVector_Get(struct CalVector *self);
CAL3D_WRAPPER_API float CalVector_Length(struct CalVector *self);
- CAL3D_WRAPPER_API struct CalVector *CalVector_New();
+ CAL3D_WRAPPER_API struct CalVector *CalVector_New(void);
CAL3D_WRAPPER_API float CalVector_Normalize(struct CalVector *self);
CAL3D_WRAPPER_API void CalVector_Op_Add(struct CalVector *pResult, struct
CalVector *pV, struct CalVector *pU);
CAL3D_WRAPPER_API void CalVector_Op_Subtract(struct CalVector *pResult,
struct CalVector *pV, struct CalVector *pU);
--- a/sound/sound.pyx
+++ b/sound/sound.pyx
@@ -154,7 +154,7 @@
cdef int _format
cdef int _framerate
- def __new__(self, *args, **kargs):
+ def __cinit__(self, *args, **kargs):
self._buffers = []
def __dealloc__(self):
@@ -301,6 +301,10 @@
elif self._format == AL_FORMAT_MONO16 : size = 16384
elif self._format == AL_FORMAT_STEREO8 : size = 16384
elif self._format == AL_FORMAT_MONO8 : size = 16384 / 2
+ # Greg Ewing, March 2007 ([EMAIL PROTECTED])
+ # Else clause added to fix uninitialised variable warning
+ else:
+ raise ValueError("Unknown size")
# Catching exception seems to memory leak in pyrex
#try: self._file.pcm_seek(i * 8192)
@@ -352,7 +356,7 @@
cdef int _current_buffer_id
cdef float _old_pos[3]
- def __new__(self, *args, **kargs):
+ def __cinit__(self, *args, **kargs):
alGenSources(1, &self._source)
alSourcef(self._source, AL_REFERENCE_DISTANCE,
_reference_distance)
--- a/model/model.pyx
+++ b/model/model.pyx
@@ -78,10 +78,10 @@
# int normal
# int v[4] # v[3] is optional (only for quad, unused for triangle)
-cdef int face_vertices_number(ModelFace* self):
- if self.option & FACE_TRIANGLE: return 3
- elif self.option & FACE_QUAD: return 4
- return 0
+#U#cdef int face_vertices_number(ModelFace* self):
+#U# if self.option & FACE_TRIANGLE: return 3
+#U# elif self.option & FACE_QUAD: return 4
+#U# return 0
cdef class _SimpleModel(_Model):
@@ -739,7 +739,7 @@
# find face neighbors
if self._option & MODEL_NEIGHBORS:
self._neighbors = <int *> malloc(self._nb_faces *
4 * sizeof(int ))
- self._neighbors_side = <char*> malloc(self._nb_faces *
4 * sizeof(char))
+ self._neighbors_side = <signed char*>
malloc(self._nb_faces * 4 * sizeof(char))
self._compute_face_neighbors(faces, vertex2ivertex,
ivertex2vertices, self._neighbors, self._neighbors_side)
# find face simple neighbors (doesn't take angle into account)
@@ -747,7 +747,7 @@
# Re-identify vertices, because for simple neighbors we
don't take angle into account
vertex2ivertex, ivertex2vertices =
self._identify_vertices(faces, 360.0)
self._simple_neighbors = <int *>
malloc(self._nb_faces * 4 * sizeof(int ))
- self._simple_neighbors_side = <char*>
malloc(self._nb_faces * 4 * sizeof(char))
+ self._simple_neighbors_side = <signed char*>
malloc(self._nb_faces * 4 * sizeof(char))
self._compute_face_neighbors(faces, vertex2ivertex,
ivertex2vertices, self._simple_neighbors, self._simple_neighbors_side)
# TO DO ?
--- a/model/terrain.pyx
+++ b/model/terrain.pyx
@@ -203,19 +203,19 @@
k[0] = (- (x - ptr[0]) * w[1] + (z - ptr[2]) * w[0]) * q
-cdef void terrain_drawColor_radeon(float* vect):
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, vect)
+#U#cdef void terrain_drawColor_radeon(float* vect):
+#U# glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, vect)
cdef void noop():
pass
-cdef void terrain_disableColor_radeon():
- #glColor4fv(white) # XXX really needed ?
- glDisable(GL_COLOR_MATERIAL)
- glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, white)
+#U#cdef void terrain_disableColor_radeon():
+#U# #glColor4fv(white) # XXX really needed ?
+#U# glDisable(GL_COLOR_MATERIAL)
+#U# glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, white)
-cdef void terrain_enableColor_radeon():
- glEnable(GL_COLOR_MATERIAL)
+#U#cdef void terrain_enableColor_radeon():
+#U# glEnable(GL_COLOR_MATERIAL)
#ctypedef void (*terrain_drawColor_FUNC )(float*)
#ctypedef void (*terrain_disableColor_FUNC)()
@@ -225,7 +225,7 @@
cdef terrain_disableColor_FUNC terrain_disableColor
cdef terrain_enableColor_FUNC terrain_enableColor
-terrain_drawColor = glColor4fv
+terrain_drawColor = <terrain_drawColor_FUNC> glColor4fv # Const cast
terrain_disableColor = noop
terrain_enableColor = noop
@@ -749,6 +749,9 @@
cshadow_color[2] = shadow_color[2]
cshadow_color[3] = shadow_color[3]
+ scolor = 0 # Greg Ewing, March 2007 ([EMAIL PROTECTED])
+ wcolor = 0 # Uninitialised variables. POSSIBLE BUG.
+
# initialize vertex colors if needed
old_colors = self._colors
self._colors = NULL
--- a/chunk.pxd
+++ b/chunk.pxd
@@ -17,19 +17,13 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-ctypedef struct Chunk:
- void* content
- int nb
- int max
-
cdef extern from "chunk.h":
-# cdef struct _Chunk:
-# void* content
-# int nb
-# int max
-
-# ctypedef _Chunk Chunk
-
+
+ ctypedef struct Chunk:
+ void* content
+ int nb
+ int max
+
Chunk* chunk_new ()
int chunk_dealloc (Chunk*)
int chunk_check_error ()
@@ -50,8 +44,8 @@
int drop_chunk (Chunk*)
- int chunk_add_chars_endian_safe (Chunk*, char* , int)
- int chunk_get_chars_endian_safe (Chunk*, char* , int)
+ int chunk_add_chars_endian_safe (Chunk*, void* , int)
+ int chunk_get_chars_endian_safe (Chunk*, void* , int)
int chunk_add_ints_endian_safe (Chunk*, int* , int)
int chunk_get_ints_endian_safe (Chunk*, int* , int)
--- a/base.pyx
+++ b/base.pyx
@@ -60,7 +60,7 @@
cdef Renderer renderer
-cdef int MAX_LIGHTS, MAX_CLIP_PLANES, MAX_TEXTURES, MAX_TEXTURE_SIZE
+cdef GLint MAX_LIGHTS, MAX_CLIP_PLANES, MAX_TEXTURES, MAX_TEXTURE_SIZE
def get_max_texture_size():
return MAX_TEXTURE_SIZE
@@ -113,8 +113,13 @@
pass
def __getstate__(self):
- if getattr(self, "__dict__", 0): return self.__getcstate__(),
self.__dict__
- else: return self.__getcstate__(),
+ cdef object d
+ try:
+ d = getattr(self, "__dict__")
+ except:
+ return self.__getcstate__()
+ else:
+ return self.__getcstate__(), d
def __setstate__(self, state):
self.__setcstate__(state[0])
@@ -136,8 +141,8 @@
return clone
-cdef chunk_to_string(Chunk* chunk):
- return PyString_FromStringAndSize(<char*> chunk.content, chunk.nb)
+#U#cdef chunk_to_string(Chunk* chunk):
+#U# return PyString_FromStringAndSize(<char*> chunk.content, chunk.nb)
cdef drop_chunk_to_string(Chunk* chunk):
cdef string
--- a/ode/geom-terrain.pyx
+++ b/ode/geom-terrain.pyx
@@ -455,8 +455,8 @@
raise RuntimeError("TerrainGeom can't collide with non
primitive Geom")
-cdef int _TerrainAABBTest(dGeomID o1, dGeomID o2, dReal aabb2[6]):
- pass
+#U#cdef int _TerrainAABBTest(dGeomID o1, dGeomID o2, dReal aabb2[6]):
+#U# pass
cdef dGeomClass dTerrainGeomClass
--- a/ode/collision.pyx
+++ b/ode/collision.pyx
@@ -101,50 +101,50 @@
return res
-cdef int collide_edge(GLfloat *A, GLfloat *B,
- GLfloat *AB, GLfloat *normalA,
- GLfloat *normalB,
- dGeomID o1, dGeomID o2, int max_contacts,
- int flags, dContactGeom *contact):
- """Check for collision with one triangle edge. Uses a normal
- that's halfway between the precomputed normals of the vertices
- that make up the edge."""
- cdef dGeomID _land_ray # Reusable ray geom #XXX misplaced
-
-
- cdef int n, num_contacts, nA, nB
- cdef dContactGeom contactA, contactB
- cdef _Geom other
- _land_ray = dCreateRay(NULL, 1.0)#XXX misplaced
-
- # First, do one direction
- dGeomRaySetLength(_land_ray, point_distance_to(A, B))
- dGeomRaySet(_land_ray, A[0], A[1], A[2], AB[0], AB[1], AB[2])
- nA = dCollide(_land_ray, o2, flags, &contactA,
sizeof(dContactGeom))
-
-
- # Then the other
- dGeomRaySet(_land_ray, B[0], B[1], B[2], -AB[0], -AB[1], -AB[2])
- nB = dCollide(_land_ray, o2, flags, &contactB,
sizeof(dContactGeom))
- dGeomDestroy(_land_ray)
-
- if nA and nB:
- contact.pos[0] = (contactA.pos[0] +
contactB.pos[0]) / 2.0
- contact.pos[1] = (contactA.pos[1] +
contactB.pos[1]) / 2.0
- contact.pos[2] = (contactA.pos[2] +
contactB.pos[2]) / 2.0
-
- # D
- contact.normal[0] = (normalA[0] + normalB[0]) /
2.0
- contact.normal[1] = (normalA[1] + normalB[1]) /
2.0
- contact.normal[2] = (normalA[2] + normalB[2]) /
2.0
-
- # Get the depth of the contact point in the
colliding geom
- other = <_Geom>dGeomGetData(o2)
- contact.depth =
other._point_depth(contact.pos[0], contact.pos[1],
-
contact.pos[2])
- contact.g1 = o1
- contact.g2 = o2
-
- return 1
-
- return 0
+#U#cdef int collide_edge(GLfloat *A, GLfloat *B,
+#U# GLfloat *AB, GLfloat *normalA,
+#U# GLfloat *normalB,
+#U# dGeomID o1, dGeomID o2, int max_contacts,
+#U# int flags, dContactGeom *contact):
+#U# """Check for collision with one triangle edge. Uses a normal
+#U# that's halfway between the precomputed normals of the vertices
+#U# that make up the edge."""
+#U# cdef dGeomID _land_ray # Reusable ray geom #XXX misplaced
+#U#
+#U#
+#U# cdef int n, num_contacts, nA, nB
+#U# cdef dContactGeom contactA, contactB
+#U# cdef _Geom other
+#U# _land_ray = dCreateRay(NULL, 1.0)#XXX misplaced
+#U#
+#U# # First, do one direction
+#U# dGeomRaySetLength(_land_ray, point_distance_to(A, B))
+#U# dGeomRaySet(_land_ray, A[0], A[1], A[2], AB[0], AB[1], AB[2])
+#U# nA = dCollide(_land_ray, o2, flags, &contactA,
sizeof(dContactGeom))
+#U#
+#U#
+#U# # Then the other
+#U# dGeomRaySet(_land_ray, B[0], B[1], B[2], -AB[0], -AB[1], -AB[2])
+#U# nB = dCollide(_land_ray, o2, flags, &contactB,
sizeof(dContactGeom))
+#U# dGeomDestroy(_land_ray)
+#U#
+#U# if nA and nB:
+#U# contact.pos[0] = (contactA.pos[0] +
contactB.pos[0]) / 2.0
+#U# contact.pos[1] = (contactA.pos[1] +
contactB.pos[1]) / 2.0
+#U# contact.pos[2] = (contactA.pos[2] +
contactB.pos[2]) / 2.0
+#U#
+#U# # D
+#U# contact.normal[0] = (normalA[0] + normalB[0]) /
2.0
+#U# contact.normal[1] = (normalA[1] + normalB[1]) /
2.0
+#U# contact.normal[2] = (normalA[2] + normalB[2]) /
2.0
+#U#
+#U# # Get the depth of the contact point in the
colliding geom
+#U# other = <_Geom>dGeomGetData(o2)
+#U# contact.depth =
other._point_depth(contact.pos[0], contact.pos[1],
+#U#
contact.pos[2])
+#U# contact.g1 = o1
+#U# contact.g2 = o2
+#U#
+#U# return 1
+#U#
+#U# return 0
--- a/ode/contact.pyx
+++ b/ode/contact.pyx
@@ -19,7 +19,7 @@
"""
- def __new__(self, *args, **kw):
+ def __cinit__(self, *args, **kw):
self._contact.surface.mode = ContactBounce
self._contact.surface.mu = dInfinity