diff options
| author | git perforce import user <a@b> | 2016-10-25 12:29:14 -0600 |
|---|---|---|
| committer | Sheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees> | 2016-10-25 18:56:37 -0500 |
| commit | 3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch) | |
| tree | fa6485c169e50d7415a651bf838f5bcd0fd3bfbd /APEX_1.4/common/include/SceneIntl.h | |
| download | physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip | |
Initial commit:
PhysX 3.4.0 Update @ 21294896
APEX 1.4.0 Update @ 21275617
[CL 21300167]
Diffstat (limited to 'APEX_1.4/common/include/SceneIntl.h')
| -rw-r--r-- | APEX_1.4/common/include/SceneIntl.h | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/APEX_1.4/common/include/SceneIntl.h b/APEX_1.4/common/include/SceneIntl.h new file mode 100644 index 00000000..7f5a5077 --- /dev/null +++ b/APEX_1.4/common/include/SceneIntl.h @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2008-2015, NVIDIA CORPORATION. All rights reserved. + * + * NVIDIA CORPORATION and its licensors retain all intellectual property + * and proprietary rights in and to this software, related documentation + * and any modifications thereto. Any use, reproduction, disclosure or + * distribution of this software and related documentation without an express + * license agreement from NVIDIA CORPORATION is strictly prohibited. + */ + + +#ifndef SCENE_INTL_H +#define SCENE_INTL_H + +#define APEX_CHECK_STAT_TIMER(name)// { PX_PROFILE_ZONE(name, GetInternalApexSDK()->getContextId()); } + +#include "Scene.h" +#include "ApexUsingNamespace.h" + +#if PX_PHYSICS_VERSION_MAJOR == 3 +// PH prevent PxScene.h from including PxPhysX.h, it will include sooo many files that it will break the clothing embedded branch +#define PX_PHYSICS_NX_PHYSICS +#include "PxScene.h" +#undef PX_PHYSICS_NX_PHYSICS +#endif + +namespace nvidia +{ +namespace apex +{ + +class ModuleSceneIntl; +class ApexContext; +class RenderDebugInterface; +class PhysX3Interface; +class ApexCudaTestManager; + +/** + * Framework interface to ApexScenes for use by modules + */ +class SceneIntl : public Scene +{ +public: + /** + When a module has been released by the end-user, the module must release + its ModuleScenesIntl and notify those Scenes that their module + scenes no longer exist + */ + virtual void moduleReleased(ModuleSceneIntl& moduleScene) = 0; + +#if PX_PHYSICS_VERSION_MAJOR == 3 + virtual void lockRead(const char *fileName,uint32_t lineo) = 0; + virtual void lockWrite(const char *fileName,uint32_t lineno) = 0; + virtual void unlockRead() = 0; + virtual void unlockWrite() = 0; + + virtual void addModuleUserNotifier(physx::PxSimulationEventCallback& notify) = 0; + virtual void removeModuleUserNotifier(physx::PxSimulationEventCallback& notify) = 0; + virtual void addModuleUserContactModify(physx::PxContactModifyCallback& notify) = 0; + virtual void removeModuleUserContactModify(physx::PxContactModifyCallback& notify) = 0; + virtual PhysX3Interface* getApexPhysX3Interface() const = 0; +#endif + + virtual ApexContext* getApexContext() = 0; + virtual float getElapsedTime() const = 0; + + /* Get total elapsed simulation time, in integer milliseconds */ + virtual uint32_t getTotalElapsedMS() const = 0; + + virtual bool isSimulating() const = 0; + virtual bool physXElapsedTime(float& dt) const = 0; + + virtual float getPhysXSimulateTime() const = 0; + + virtual bool isFinalStep() const = 0; + + virtual uint32_t getSeed() = 0; // Not necessarily const + + enum ApexStatsDataEnum + { + NumberOfActors, + NumberOfShapes, + NumberOfAwakeShapes, + NumberOfCpuShapePairs, + ApexBeforeTickTime, + ApexDuringTickTime, + ApexPostTickTime, + PhysXSimulationTime, + ClothingSimulationTime, + ParticleSimulationTime, + TurbulenceSimulationTime, + PhysXFetchResultTime, + UserDelayedFetchTime, + RbThroughput, + SimulatedSpriteParticlesCount, + SimulatedMeshParticlesCount, + VisibleDestructibleChunkCount, + DynamicDestructibleChunkIslandCount, + + // insert new items before this line + NumberOfApexStats // The number of stats + }; + + virtual void setApexStatValue(int32_t index, StatValue dataVal) = 0; + +#if APEX_CUDA_SUPPORT + virtual ApexCudaTestManager& getApexCudaTestManager() = 0; + virtual bool isUsingCuda() const = 0; +#endif + virtual ModuleSceneIntl* getInternalModuleScene(const char* moduleName) = 0; +}; + +/* ApexScene task names */ +#define APEX_DURING_TICK_TIMING_FIX 1 + +#define AST_PHYSX_SIMULATE "ApexScene::PhysXSimulate" +#define AST_PHYSX_BETWEEN_STEPS "ApexScene::PhysXBetweenSteps" + +#if APEX_DURING_TICK_TIMING_FIX +# define AST_DURING_TICK_COMPLETE "ApexScene::DuringTickComplete" +#endif + +#define AST_PHYSX_CHECK_RESULTS "ApexScene::CheckResults" +#define AST_PHYSX_FETCH_RESULTS "ApexScene::FetchResults" + + + + +} +} // end namespace nvidia::apex + + +#endif // SCENE_INTL_H |