summaryrefslogtreecommitdiff
path: root/Runtime/NavMesh/NavMeshProfiler.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-08-14 22:50:43 +0800
committerchai <chaifix@163.com>2019-08-14 22:50:43 +0800
commit15740faf9fe9fe4be08965098bbf2947e096aeeb (patch)
treea730ec236656cc8cab5b13f088adfaed6bb218fb /Runtime/NavMesh/NavMeshProfiler.h
+Unity Runtime codeHEADmaster
Diffstat (limited to 'Runtime/NavMesh/NavMeshProfiler.h')
-rw-r--r--Runtime/NavMesh/NavMeshProfiler.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/Runtime/NavMesh/NavMeshProfiler.h b/Runtime/NavMesh/NavMeshProfiler.h
new file mode 100644
index 0000000..122b224
--- /dev/null
+++ b/Runtime/NavMesh/NavMeshProfiler.h
@@ -0,0 +1,71 @@
+#ifndef NAVMESHPROFILER_H
+#define NAVMESHPROFILER_H
+
+#include "Runtime/Profiler/Profiler.h"
+#include "DetourContext.h"
+
+PROFILER_INFORMATION (gCrowdManagerPathFinding, "CrowdManager.PathFinding", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerPathFollowing, "CrowdManager.PathFollowing", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerPathFollowingLate, "CrowdManager.PathFollowing.Late", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerAvoidance, "CrowdManager.Avoidance", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerAvoidanceSampling, "CrowdManager.Avoidance.Sampling", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerProximity, "CrowdManager.Proximity", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerProximityInsert, "CrowdManager.Proximity.Insert", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerProximityCollect, "CrowdManager.Proximity.Collect", kProfilerAI)
+PROFILER_INFORMATION (gCrowdManagerCollision, "CrowdManager.Collision", kProfilerAI)
+
+class CrowdProfiler : public dtContext
+{
+public:
+ CrowdProfiler ()
+ : dtContext (true)
+ {
+ }
+ virtual ~CrowdProfiler ()
+ {
+ }
+
+protected:
+ virtual void doStartTimer (const dtTimerLabel label)
+ {
+ switch (label)
+ {
+ case DT_TIMER_UPDATE_PATHFINDING:
+ PROFILER_BEGIN (gCrowdManagerPathFinding, NULL);
+ break;
+ case DT_TIMER_UPDATE_PATHFOLLOWING:
+ PROFILER_BEGIN (gCrowdManagerPathFollowing, NULL);
+ break;
+ case DT_TIMER_UPDATE_PATHFOLLOWING_LATE:
+ PROFILER_BEGIN (gCrowdManagerPathFollowingLate, NULL);
+ break;
+ case DT_TIMER_UPDATE_AVOIDANCE:
+ PROFILER_BEGIN (gCrowdManagerAvoidance, NULL);
+ break;
+ case DT_TIMER_UPDATE_AVOIDANCE_SAMPLING:
+ PROFILER_BEGIN (gCrowdManagerAvoidanceSampling, NULL);
+ break;
+ case DT_TIMER_UPDATE_PROXIMITY:
+ PROFILER_BEGIN (gCrowdManagerProximity, NULL);
+ break;
+ case DT_TIMER_UPDATE_PROXIMITY_INSERT:
+ PROFILER_BEGIN (gCrowdManagerProximityInsert, NULL);
+ break;
+ case DT_TIMER_UPDATE_PROXIMITY_COLLECT:
+ PROFILER_BEGIN (gCrowdManagerProximityCollect, NULL);
+ break;
+ case DT_TIMER_UPDATE_COLLISION:
+ PROFILER_BEGIN (gCrowdManagerCollision, NULL);
+ break;
+ default:
+ break;
+ }
+ }
+
+ virtual void doStopTimer (const dtTimerLabel /*label*/)
+ {
+ PROFILER_END
+ }
+};
+
+#endif