Browse Source

Changes to build PhysX support on 64-bits Linux

rdb 15 years ago
parent
commit
754cb8e4bc

+ 2 - 2
dtool/Config.pp

@@ -930,8 +930,8 @@
 #defer HAVE_OPENAL $[or $[OPENAL_FRAMEWORK],$[libtest $[OPENAL_LPATH],$[OPENAL_LIBS]]]
 #defer HAVE_OPENAL $[or $[OPENAL_FRAMEWORK],$[libtest $[OPENAL_LPATH],$[OPENAL_LIBS]]]
 
 
 // Info for the NVIDIA PhysX SDK
 // Info for the NVIDIA PhysX SDK
-#define PHYSX_IPATH
-#define PHYSX_LPATH
+#define PHYSX_IPATH /usr/include/PhysX/v2.8.3/SDKs/Cooking/include /usr/include/PhysX/v2.8.3/SDKs/Foundation/include /usr/include/PhysX/v2.8.3/SDKs/NxCharacter/include /usr/include/PhysX/v2.8.3/SDKs/Physics/include /usr/include/PhysX/v2.8.3/SDKs/PhysXLoader/include
+#define PHYSX_LPATH /usr/lib/PhysX/v2.8.3
 #define PHYSX_LIBS $[if $[WINDOWS_PLATFORM],PhysXLoader.lib NxCharacter.lib NxCooking.lib NxExtensions.lib,PhysXLoader NxCharacter NxCooking]
 #define PHYSX_LIBS $[if $[WINDOWS_PLATFORM],PhysXLoader.lib NxCharacter.lib NxCooking.lib NxExtensions.lib,PhysXLoader NxCharacter NxCooking]
 #defer HAVE_PHYSX $[libtest $[PHYSX_LPATH],$[PHYSX_LIBS]]
 #defer HAVE_PHYSX $[libtest $[PHYSX_LPATH],$[PHYSX_LIBS]]
 
 

+ 0 - 3
dtool/LocalSetup.pp

@@ -251,9 +251,6 @@ $[cdefine HAVE_FMODEX]
 /* Define if we have OpenAL installed. */
 /* Define if we have OpenAL installed. */
 $[cdefine HAVE_OPENAL]
 $[cdefine HAVE_OPENAL]
 
 
-/* Define if we have Ageia PhysX SDK installed. */
-$[cdefine HAVE_PHYSX]
-
 /* Define if we have Freetype 2.0 or better available. */
 /* Define if we have Freetype 2.0 or better available. */
 $[cdefine HAVE_FREETYPE]
 $[cdefine HAVE_FREETYPE]
 
 

+ 1 - 1
makepanda/makepandacore.py

@@ -1478,7 +1478,7 @@ def SdkLocatePhysX():
                 if folder.endswith("NVIDIA PhysX SDK\\%s\\SDKs\\" % key):
                 if folder.endswith("NVIDIA PhysX SDK\\%s\\SDKs\\" % key):
                     SDK["PHYSX"] = folder
                     SDK["PHYSX"] = folder
                     SDK["PHYSXVERSION"] = ver
                     SDK["PHYSXVERSION"] = ver
-        elif (sys.platform.startswith("linux") and platform.architecture()[0] != "64bit"):
+        elif (sys.platform.startswith("linux")):
             incpath = "/usr/include/PhysX/%s/SDKs" % key
             incpath = "/usr/include/PhysX/%s/SDKs" % key
             libpath = "/usr/lib/PhysX/%s" % key
             libpath = "/usr/lib/PhysX/%s" % key
             if (os.path.isdir(incpath) and os.path.isdir(libpath)):
             if (os.path.isdir(incpath) and os.path.isdir(libpath)):

+ 11 - 2
panda/src/physx/Sources.pp

@@ -30,8 +30,11 @@
     physxCapsuleForceFieldShapeDesc.I physxCapsuleForceFieldShapeDesc.h \
     physxCapsuleForceFieldShapeDesc.I physxCapsuleForceFieldShapeDesc.h \
     physxCapsuleShape.I physxCapsuleShape.h \
     physxCapsuleShape.I physxCapsuleShape.h \
     physxCapsuleShapeDesc.I physxCapsuleShapeDesc.h \
     physxCapsuleShapeDesc.I physxCapsuleShapeDesc.h \
+    physxCloth.I physxCloth.h \
+    physxClothDesc.I physxClothDesc.h \
     physxClothMesh.I physxClothMesh.h \
     physxClothMesh.I physxClothMesh.h \
     physxClothMeshDesc.I physxClothMeshDesc.h \
     physxClothMeshDesc.I physxClothMeshDesc.h \
+    physxClothNode.I physxClothNode.h \
     physxConstraintDominance.I physxConstraintDominance.h \
     physxConstraintDominance.I physxConstraintDominance.h \
     physxContactPair.I physxContactPair.h \
     physxContactPair.I physxContactPair.h \
     physxContactPoint.I physxContactPoint.h \
     physxContactPoint.I physxContactPoint.h \
@@ -124,7 +127,7 @@
     physxVehicle.I physxVehicle.h \
     physxVehicle.I physxVehicle.h \
     physxVehicleDesc.I physxVehicleDesc.h \
     physxVehicleDesc.I physxVehicleDesc.h \
     physxWheel.I physxWheel.h \
     physxWheel.I physxWheel.h \
-    physxWheelDesc.I physxWheel.h \
+    physxWheelDesc.I physxWheelDesc.h \
     physxWheelShape.I physxWheelShape.h \
     physxWheelShape.I physxWheelShape.h \
     physxWheelShapeDesc.I physxWheelShapeDesc.h \
     physxWheelShapeDesc.I physxWheelShapeDesc.h \
 
 
@@ -148,8 +151,11 @@
     physxCapsuleForceFieldShapeDesc.cxx \
     physxCapsuleForceFieldShapeDesc.cxx \
     physxCapsuleShape.cxx \
     physxCapsuleShape.cxx \
     physxCapsuleShapeDesc.cxx \
     physxCapsuleShapeDesc.cxx \
+    physxCloth.cxx \
+    physxClothDesc.cxx \
     physxClothMesh.cxx \
     physxClothMesh.cxx \
     physxClothMeshDesc.cxx \
     physxClothMeshDesc.cxx \
+    physxClothNode.cxx \
     physxConstraintDominance.cxx \
     physxConstraintDominance.cxx \
     physxContactPair.cxx \
     physxContactPair.cxx \
     physxContactPoint.cxx \
     physxContactPoint.cxx \
@@ -266,8 +272,11 @@
     physxCapsuleForceFieldShapeDesc.I physxCapsuleForceFieldShapeDesc.h \
     physxCapsuleForceFieldShapeDesc.I physxCapsuleForceFieldShapeDesc.h \
     physxCapsuleShape.I physxCapsuleShape.h \
     physxCapsuleShape.I physxCapsuleShape.h \
     physxCapsuleShapeDesc.I physxCapsuleShapeDesc.h \
     physxCapsuleShapeDesc.I physxCapsuleShapeDesc.h \
+    physxCloth.I physxCloth.h \
+    physxClothDesc.I physxClothDesc.h \
     physxClothMesh.I physxClothMesh.h \
     physxClothMesh.I physxClothMesh.h \
     physxClothMeshDesc.I physxClothMeshDesc.h \
     physxClothMeshDesc.I physxClothMeshDesc.h \
+    physxClothNode.I physxClothNode.h \
     physxConstraintDominance.I physxConstraintDominance.h \
     physxConstraintDominance.I physxConstraintDominance.h \
     physxContactPair.I physxContactPair.h \
     physxContactPair.I physxContactPair.h \
     physxContactPoint.I physxContactPoint.h \
     physxContactPoint.I physxContactPoint.h \
@@ -360,7 +369,7 @@
     physxVehicle.I physxVehicle.h \
     physxVehicle.I physxVehicle.h \
     physxVehicleDesc.I physxVehicleDesc.h \
     physxVehicleDesc.I physxVehicleDesc.h \
     physxWheel.I physxWheel.h \
     physxWheel.I physxWheel.h \
-    physxWheelDesc.I physxWheel.h \
+    physxWheelDesc.I physxWheelDesc.h \
     physxWheelShape.I physxWheelShape.h \
     physxWheelShape.I physxWheelShape.h \
     physxWheelShapeDesc.I physxWheelShapeDesc.h \
     physxWheelShapeDesc.I physxWheelShapeDesc.h \
 
 

+ 1 - 0
panda/src/physx/physxScene.cxx

@@ -242,6 +242,7 @@ void PhysxScene::
 fetch_results() {
 fetch_results() {
 
 
   nassertv(_error_type == ET_ok);
   nassertv(_error_type == ET_ok);
+  nassertv(_ptr != NULL);
 
 
   _pcollector_fetch_results.start();
   _pcollector_fetch_results.start();
   _ptr->fetchResults(NX_RIGID_BODY_FINISHED, true);
   _ptr->fetchResults(NX_RIGID_BODY_FINISHED, true);

+ 4 - 0
panda/src/physx/physx_includes.h

@@ -23,7 +23,11 @@
 
 
 #ifdef IS_LINUX
 #ifdef IS_LINUX
 #define LINUX 1
 #define LINUX 1
+#ifdef _LP64
+#define NX64 1
+#else
 #define NX32 1
 #define NX32 1
+#endif
 #define CORELIB 1
 #define CORELIB 1
 #define NX_DISABLE_FLUIDS 1
 #define NX_DISABLE_FLUIDS 1
 #endif
 #endif