@@ -226,7 +226,7 @@ namespace AtomicEngine
}
- static void ExpireNatives()
+ internal static void ExpireNatives()
{
var watch = new Stopwatch();
watch.Start();
@@ -28,6 +28,11 @@ namespace AtomicPlayer
if (loadedScenes.Contains(e.Scene))
loadedScenes.Remove(e.Scene);
+
+ GC.Collect();
+ GC.WaitForPendingFinalizers();
+ NativeCore.ExpireNatives();
});
@@ -277,6 +277,12 @@ void DebugHud::SetProfilerMode(DebugHudProfileMode mode)
if (!metrics)
size = 32;
+ else
+ {
+ // Enable metrics immediately
+ if (!metrics->GetEnabled())
+ metrics->Enable();
+ }
if (profilerText_.NotNull())
@@ -946,6 +946,16 @@ void UI::SetDebugHudProfileMode(DebugHudProfileMode mode)
hud->SetProfilerMode(mode);
+void UI::SetDebugHudRefreshInterval(float seconds)
+{
+ SystemUI::DebugHud* hud = GetSubsystem<SystemUI::DebugHud>();
+ if (!hud)
+ return;
+ hud->SetProfilerInterval(seconds);
+}
void UI::ShowConsole(bool value)
SystemUI::Console* console = GetSubsystem<SystemUI::Console>();
@@ -107,6 +107,9 @@ public:
void SetDebugHudExtents(bool useRootExtents = true, const IntVector2& position = IntVector2::ZERO, const IntVector2& size = IntVector2::ZERO);
+ /// Set the DebugHud refresh interval for performance and metrics in seconds
+ void SetDebugHudRefreshInterval(float seconds);
void ShowConsole(bool value);
void ToggleConsole();