| 53 | } |
| 54 | |
| 55 | void CStats::Show() |
| 56 | { |
| 57 | if (psDeviceFlags.test(rsCameraPos) || psDeviceFlags.test(rsStatistic) || !errors.empty()) |
| 58 | { |
| 59 | // Stop timers |
| 60 | { |
| 61 | EngineTOTAL.FrameEnd(); |
| 62 | Sheduler.FrameEnd(); |
| 63 | UpdateClient.FrameEnd(); |
| 64 | Physics.FrameEnd(); |
| 65 | ph_collision.FrameEnd(); |
| 66 | ph_core.FrameEnd(); |
| 67 | Animation.FrameEnd(); |
| 68 | AI_Think.FrameEnd(); |
| 69 | AI_Range.FrameEnd(); |
| 70 | AI_Path.FrameEnd(); |
| 71 | AI_Node.FrameEnd(); |
| 72 | AI_Vis.FrameEnd(); |
| 73 | AI_Vis_Query.FrameEnd(); |
| 74 | AI_Vis_RayTests.FrameEnd(); |
| 75 | |
| 76 | RenderTOTAL.FrameEnd(); |
| 77 | RenderCALC.FrameEnd(); |
| 78 | RenderCALC_HOM.FrameEnd(); |
| 79 | RenderDUMP.FrameEnd(); |
| 80 | RenderDUMP_Wait.FrameEnd(); |
| 81 | RenderDUMP_WM.FrameEnd(); |
| 82 | RenderDUMP_DT_VIS.FrameEnd(); |
| 83 | RenderDUMP_DT_Render.FrameEnd(); |
| 84 | RenderDUMP_DT_Cache.FrameEnd(); |
| 85 | |
| 86 | Sound.FrameEnd(); |
| 87 | Input.FrameEnd(); |
| 88 | clRAY.FrameEnd(); |
| 89 | clBOX.FrameEnd(); |
| 90 | clFRUSTUM.FrameEnd(); |
| 91 | |
| 92 | BulletManager.FrameEnd(); |
| 93 | cam_Update.FrameEnd(); |
| 94 | dxRainRender.FrameEnd(); |
| 95 | |
| 96 | g_SpatialSpace->stat_insert.FrameEnd(); |
| 97 | g_SpatialSpace->stat_remove.FrameEnd(); |
| 98 | g_SpatialSpacePhysic->stat_insert.FrameEnd(); |
| 99 | g_SpatialSpacePhysic->stat_remove.FrameEnd(); |
| 100 | } |
| 101 | |
| 102 | // calc FPS & TPS |
| 103 | if (Device.fTimeDeltaReal > EPS_S) |
| 104 | { |
| 105 | float fps = 1.f / Device.fTimeDeltaReal; |
| 106 | |
| 107 | float fOne = 0.3f; |
| 108 | float fInv = 1.f - fOne; |
| 109 | |
| 110 | fFPS = fInv * fFPS + fOne * fps; |
| 111 | |
| 112 | if (RenderTOTAL.result > EPS_S) |
no test coverage detected