diff options
| author | Sheikh Dawood <[email protected]> | 2018-04-09 10:13:48 -0500 |
|---|---|---|
| committer | Sheikh Dawood <[email protected]> | 2018-04-09 10:13:48 -0500 |
| commit | 238605d8225a9135d6b60646e05d066e25424eee (patch) | |
| tree | 2b013bd4946bb3c699d7a06ef1f21be85d367f63 /PhysX_3.4/Source/SceneQuery/include | |
| parent | Add ParamTool.exe (diff) | |
| download | physx-3.4-238605d8225a9135d6b60646e05d066e25424eee.tar.xz physx-3.4-238605d8225a9135d6b60646e05d066e25424eee.zip | |
PhysX 3.4, APEX 1.4 patch release @23879214
Diffstat (limited to 'PhysX_3.4/Source/SceneQuery/include')
| -rw-r--r-- | PhysX_3.4/Source/SceneQuery/include/SqPruner.h | 11 | ||||
| -rw-r--r-- | PhysX_3.4/Source/SceneQuery/include/SqSceneQueryManager.h | 9 |
2 files changed, 17 insertions, 3 deletions
diff --git a/PhysX_3.4/Source/SceneQuery/include/SqPruner.h b/PhysX_3.4/Source/SceneQuery/include/SqPruner.h index 871962df..9c77b1b5 100644 --- a/PhysX_3.4/Source/SceneQuery/include/SqPruner.h +++ b/PhysX_3.4/Source/SceneQuery/include/SqPruner.h @@ -227,10 +227,19 @@ public: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /** * Steps the accel structure build. + * canDoInit specifies if initialization can happen. It should not initialize build when called from a different thread * returns true if finished */ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - virtual bool buildStep() = 0; + virtual bool buildStep(bool canDoInit = true) = 0; + + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + /** + * Prepares new tree build + * returns true if new tree is needed + */ + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + virtual bool prepareBuild() = 0; }; ////////////////////////////////////////////////////////////////////////// diff --git a/PhysX_3.4/Source/SceneQuery/include/SqSceneQueryManager.h b/PhysX_3.4/Source/SceneQuery/include/SqSceneQueryManager.h index 073bf5d3..f7e60465 100644 --- a/PhysX_3.4/Source/SceneQuery/include/SqSceneQueryManager.h +++ b/PhysX_3.4/Source/SceneQuery/include/SqSceneQueryManager.h @@ -148,13 +148,15 @@ namespace Sq void flushUpdates(); void forceDynamicTreeRebuild(bool rebuildStaticStructure, bool rebuildDynamicStructure); + void sceneQueryBuildStep(PruningIndex::Enum index); DynamicBoundsSync& getDynamicBoundsSync() { return mDynamicBoundsSync; } + bool prepareSceneQueriesUpdate(PruningIndex::Enum index); + // Force a rebuild of the aabb/loose octree etc to allow raycasting on multiple threads. - void processSimUpdates(); void validateSimUpdates(); - void afterSync(bool commit); + void afterSync(PxSceneQueryUpdateMode::Enum updateMode); void shiftOrigin(const PxVec3& shift); void flushMemory(); @@ -170,7 +172,10 @@ namespace Sq DynamicBoundsSync mDynamicBoundsSync; + volatile bool mPrunerNeedsUpdating; + void flushShapes(); + }; /////////////////////////////////////////////////////////////////////////////// |