| 973 | //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// |
| 974 | |
| 975 | static dmExtension::Result InitializeProfiler(dmExtension::Params* params) |
| 976 | { |
| 977 | // Should CPU sample tracking be run each step? |
| 978 | // This is enabled by default in debug, but can be turned on in release via project config. |
| 979 | dmProfiler::g_TrackCpuUsage = dLib::IsDebugMode(); |
| 980 | if (dmConfigFile::GetInt(params->m_ConfigFile, "profiler.track_cpu", 0) == 1) |
| 981 | { |
| 982 | dmProfiler::g_TrackCpuUsage = true; |
| 983 | } |
| 984 | dmProfiler::g_TrackDetailedMemory = dmConfigFile::GetInt(params->m_ConfigFile, "profiler.track_detailed_memory", 0) == 1; |
| 985 | |
| 986 | static const luaL_reg Module_methods[] = |
| 987 | { |
| 988 | {"get_memory_usage", MemoryUsage}, |
| 989 | {"get_cpu_usage", CPUUsage}, |
| 990 | {"get_lua_ref_count", GetLuaRefCount}, |
| 991 | {"enable", EnableProfiler}, |
| 992 | {"enable_ui", EnableProfilerUI}, |
| 993 | {"set_ui_mode", SetProfileUIMode}, |
| 994 | {"set_ui_view_mode", SetProfilerUIViewMode}, |
| 995 | {"set_ui_vsync_wait_visible", SetProfileUIVSyncWaitVisible}, |
| 996 | {"recorded_frame_count", ProfilerUIRecordedFrameCount}, |
| 997 | {"view_recorded_frame", ProfilerUIViewRecordedFrame}, |
| 998 | {"log_text", ProfilerLogText}, |
| 999 | {"dump_frame", ProfilerDumpFrame}, |
| 1000 | |
| 1001 | {"scope_begin", ProfilerScopeBegin}, |
| 1002 | {"scope_end", ProfilerScopeEnd}, |
| 1003 | |
| 1004 | {0, 0} |
| 1005 | }; |
| 1006 | |
| 1007 | luaL_register(params->m_L, "profiler", Module_methods); |
| 1008 | |
| 1009 | lua_pushnumber(params->m_L, (lua_Number) dmProfileRender::PROFILER_MODE_RUN); |
| 1010 | lua_setfield(params->m_L, -2, "MODE_RUN"); |
| 1011 | lua_pushnumber(params->m_L, (lua_Number) dmProfileRender::PROFILER_MODE_PAUSE); |
| 1012 | lua_setfield(params->m_L, -2, "MODE_PAUSE"); |
| 1013 | lua_pushnumber(params->m_L, (lua_Number) dmProfileRender::PROFILER_MODE_SHOW_PEAK_FRAME); |
| 1014 | lua_setfield(params->m_L, -2, "MODE_SHOW_PEAK_FRAME"); |
| 1015 | lua_pushnumber(params->m_L, (lua_Number) dmProfileRender::PROFILER_MODE_RECORD); |
| 1016 | lua_setfield(params->m_L, -2, "MODE_RECORD"); |
| 1017 | |
| 1018 | lua_pushnumber(params->m_L, (lua_Number) dmProfileRender::PROFILER_VIEW_MODE_FULL); |
| 1019 | lua_setfield(params->m_L, -2, "VIEW_MODE_FULL"); |
| 1020 | lua_pushnumber(params->m_L, (lua_Number) dmProfileRender::PROFILER_VIEW_MODE_MINIMIZED); |
| 1021 | lua_setfield(params->m_L, -2, "VIEW_MODE_MINIMIZED"); |
| 1022 | |
| 1023 | lua_pop(params->m_L, 1); |
| 1024 | |
| 1025 | return dmExtension::RESULT_OK; |
| 1026 | } |
| 1027 | |
| 1028 | static dmExtension::Result UpdateProfiler(dmExtension::Params* params) |
| 1029 | { |
nothing calls this directly
no test coverage detected