Overlays: fix delta calculation

This commit is contained in:
Barış Hamil 2025-06-22 00:39:02 +03:00 committed by GreemDev
parent 952be47f3c
commit 076dd9a56a

View file

@ -21,7 +21,7 @@ namespace Ryujinx.Graphics.Gpu
{ {
private readonly GpuContext _context; private readonly GpuContext _context;
private readonly OverlayManager _overlayManager; private readonly OverlayManager _overlayManager;
private DateTime _lastUpdateTime = DateTime.UtcNow; private DateTime? _lastUpdateTime = null;
/// <summary> /// <summary>
/// Texture presented on the window. /// Texture presented on the window.
@ -271,13 +271,16 @@ namespace Ryujinx.Graphics.Gpu
{ {
try try
{ {
// Calculate delta time for lifespan updates
DateTime currentTime = DateTime.UtcNow; DateTime currentTime = DateTime.UtcNow;
float deltaTime = (float)(currentTime - _lastUpdateTime).TotalSeconds; if (_lastUpdateTime != null)
_lastUpdateTime = currentTime; {
// Calculate delta time for lifespan updates
float deltaTime = (float)(currentTime - _lastUpdateTime.Value).TotalSeconds;
_overlayManager.Update(deltaTime, new SKSize(texture.Info.Width, texture.Info.Height));
}
// Update overlay animations // Update overlay animations
_overlayManager.Update(deltaTime, new SKSize(texture.Info.Width, texture.Info.Height)); _lastUpdateTime = currentTime;
// Get texture data from host texture // Get texture data from host texture
using var pinnedData = texture.HostTexture.GetData(); using var pinnedData = texture.HostTexture.GetData();