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