diff options
author | Campbell Barton <ideasman42@gmail.com> | 2011-09-10 07:07:26 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2011-09-10 07:07:26 +0400 |
commit | 0128218254df07f804b15088036a1e7ef4938664 (patch) | |
tree | 7413c64bd110b4c4a171e2f9f3c725c3dfb314d5 /source/blender | |
parent | 23b843130b5aa77988ac158bb11addcccec01e68 (diff) |
recast and detour patch now builds again with GCC
- rearrange structs to work for 64bit
- define all vars before goto's
- ifdefs for qsort_r/qsort_s
- dont cast pointers to int only for NULL checks
- dont printf STR_String directly, get the char pointer from it
also minor change to gpu py module, no need to pass empty tuple to PyObject_CallObject, can just be NULL
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/util/navmesh_conversion.cpp | 16 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_scene_types.h | 26 | ||||
-rw-r--r-- | source/blender/python/intern/gpu.c | 9 |
3 files changed, 26 insertions, 25 deletions
diff --git a/source/blender/editors/util/navmesh_conversion.cpp b/source/blender/editors/util/navmesh_conversion.cpp index 2068d17435c..255e3387ab2 100644 --- a/source/blender/editors/util/navmesh_conversion.cpp +++ b/source/blender/editors/util/navmesh_conversion.cpp @@ -146,7 +146,6 @@ bool buildPolygonsByDetailedMeshes(const int vertsPerPoly, const int npolys, const float* verts, const unsigned short* dtris, const int* dtrisToPolysMap) { - bool res = false; int capacity = vertsPerPoly; unsigned short* newPoly = new unsigned short[capacity]; memset(newPoly, 0xff, sizeof(unsigned short)*capacity); @@ -268,7 +267,6 @@ bool buildPolygonsByDetailedMeshes(const int vertsPerPoly, const int npolys, } } } - res = true; returnLabel: delete newPoly; @@ -280,8 +278,13 @@ struct SortContext const int* recastData; const int* trisToFacesMap; }; -static int compareByData(void* data, const void * a, const void * b){ - SortContext* context = (SortContext*)data; +#if defined(_MSC_VER) +static int compareByData(const void* data, void * a, void * b) +#else +static int compareByData(const void * a, const void * b, void* data) +#endif +{ + const SortContext* context = (const SortContext*)data; return ( context->recastData[context->trisToFacesMap[*(int*)a]] - context->recastData[context->trisToFacesMap[*(int*)b]] ); } @@ -307,8 +310,11 @@ bool buildNavMeshData(const int nverts, const float* verts, SortContext context; context.recastData = recastData; context.trisToFacesMap = trisToFacesMap; +#if defined(_MSC_VER) qsort_s(trisMapping, ntris, sizeof(int), compareByData, &context); - +#else + qsort_r(trisMapping, ntris, sizeof(int), compareByData, &context); +#endif //search first valid triangle - triangle of convex polygon int validTriStart = -1; for (int i=0; i< ntris; i++) diff --git a/source/blender/makesdna/DNA_scene_types.h b/source/blender/makesdna/DNA_scene_types.h index be44b87d48e..5f20432d6f8 100644 --- a/source/blender/makesdna/DNA_scene_types.h +++ b/source/blender/makesdna/DNA_scene_types.h @@ -445,6 +445,19 @@ typedef struct RecastData typedef struct GameData { + /* standalone player */ + struct GameFraming framing; + short fullscreen, xplay, yplay, freqplay; + short depth, attrib, rt1, rt2; + + /* stereo/dome mode */ + struct GameDome dome; + short stereoflag, stereomode; + short pad2, pad3; + float eyeseparation, pad1; + RecastData recastData; + + /* physics (it was in world)*/ float gravity; /*Gravitation constant for the game world*/ @@ -463,19 +476,6 @@ typedef struct GameData { short ticrate, maxlogicstep, physubstep, maxphystep; short obstacleSimulation; float levelHeight; - - - /* standalone player */ - struct GameFraming framing; - short fullscreen, xplay, yplay, freqplay; - short depth, attrib, rt1, rt2; - - /* stereo/dome mode */ - struct GameDome dome; - short stereoflag, stereomode; - short pad2, pad3; - float eyeseparation, pad1; - RecastData recastData; } GameData; #define STEREO_NOSTEREO 1 diff --git a/source/blender/python/intern/gpu.c b/source/blender/python/intern/gpu.c index 8d705e44bb8..334bb1f725a 100644 --- a/source/blender/python/intern/gpu.c +++ b/source/blender/python/intern/gpu.c @@ -147,7 +147,6 @@ static PyObject* GPU_export_shader(PyObject* UNUSED(self), PyObject *args, PyObj PyObject* pymat; PyObject* as_pointer; PyObject* pointer; - PyObject* noargs; PyObject* result; PyObject* dict; PyObject* val; @@ -170,9 +169,7 @@ static PyObject* GPU_export_shader(PyObject* UNUSED(self), PyObject *args, PyObj (as_pointer = PyObject_GetAttrString(pyscene, "as_pointer")) != NULL && PyCallable_Check(as_pointer)) { // must be a scene object - noargs = PyTuple_New(0); - pointer = PyObject_CallObject(as_pointer, noargs); - Py_DECREF(noargs); + pointer = PyObject_CallObject(as_pointer, NULL); if (!pointer) { PyErr_SetString(PyExc_SystemError, "scene.as_pointer() failed"); return NULL; @@ -192,9 +189,7 @@ static PyObject* GPU_export_shader(PyObject* UNUSED(self), PyObject *args, PyObj (as_pointer = PyObject_GetAttrString(pymat, "as_pointer")) != NULL && PyCallable_Check(as_pointer)) { // must be a material object - noargs = PyTuple_New(0); - pointer = PyObject_CallObject(as_pointer, noargs); - Py_DECREF(noargs); + pointer = PyObject_CallObject(as_pointer, NULL); if (!pointer) { PyErr_SetString(PyExc_SystemError, "scene.as_pointer() failed"); return NULL; |