MCPcopy Create free account
hub / github.com/TheForceEngine/TheForceEngine / beginZone

Function beginZone

TheForceEngine/TFE_System/profiler.cpp:105–151  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103 }
104
105 u32 beginZone(const char* name, const char* func, u32 lineNumber)
106 {
107 ZoneMap::iterator iZone = s_zoneMap.find(name);
108 u32 id = 0;
109
110 if (iZone == s_zoneMap.end())
111 {
112 id = (u32)s_zoneList.size();
113
114 Zone zone;
115 zone.id = id;
116 zone.path = s_currentPath;
117 zone.timeInZone[s_readBuffer] = 0;
118 zone.timeInZone[s_writeBuffer] = 0;
119 zone.timeInZoneAve = 0.0;
120 zone.fractOfParentAve = 0.0;
121 zone.frame = 0;
122
123 s_zoneList.push_back(zone);
124 s_zoneMap[name] = id;
125 }
126 else
127 {
128 id = iZone->second;
129 }
130
131 Zone& zone = s_zoneList[id];
132 strcpy(zone.name, name);
133 strcpy(zone.func, func);
134 zone.lineNumber = lineNumber;
135 zone.level = s_level;
136
137 zone.parent = s_level > 0 ? s_zoneStack[s_level - 1] : NULL_ZONE;
138 if (zone.parent == NULL_ZONE)
139 {
140 s_roots.push_back(id);
141 }
142 else
143 {
144 addZoneChild(zone.parent, zone.id);
145 }
146
147 s_zoneStack[s_level] = id;
148 s_level++;
149
150 return id;
151 }
152
153 void endZone(u32 id, u64 dt)
154 {

Callers 2

TFE_Profiler_ZoneMethod · 0.85

Calls 4

addZoneChildFunction · 0.85
push_backMethod · 0.80
endMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected