daily update on 20240620 by nitload youmu

This commit is contained in:
Nitload
2024-06-20 07:47:00 +08:00
parent 7fb220c523
commit b2cb0cbddf
39 changed files with 1252 additions and 550 deletions
@@ -16,7 +16,10 @@ namespace StgSharp.Logic
private Blueprint renderLogic;
public Blueprint RenderLogic
/// <summary>
/// Render logic for every frame with no relation to <see cref="View"/>.
/// </summary>
public Blueprint GeneralRenderLogic
{
get => renderLogic;
set => renderLogic = value;
@@ -39,7 +42,7 @@ namespace StgSharp.Logic
item.Value();
}
}
renderLogic.RunRepeatedly(() => ShouldClose);
BlueprintRunner.Run(renderLogic, ()=>ShouldClose);
frameTimeProvider.WaitNextSpan();
Interlocked.Add(ref _frameCount, 1);
}
+12 -16
View File
@@ -67,12 +67,7 @@ namespace StgSharp.Logic
fpsCountProvider = new TimeSpanProvider(1.0, TimeSpanProvider.DefaultProvider);
_frameSpeed = 0;
_frameCount = 0;
fpsCountProvider.SpanRefreshCallback =
() =>
{
Interlocked.Exchange(ref _frameSpeed, _frameCount);
Interlocked.Exchange(ref _frameCount, 0);
};
fpsCountProvider.SpanRefreshCallback = CountFps;
long frameLength = (FrameSpeed > 0) ? ((1000L * 1000L) / FrameSpeed) : 0;
frameTimeProvider = new TimeSpanProvider(
frameLength, TimeSpanProvider.DefaultProvider
@@ -91,16 +86,7 @@ namespace StgSharp.Logic
fpsCountProvider = new TimeSpanProvider(1.0, TimeSpanProvider.DefaultProvider);
_frameSpeed = 0;
_frameCount = 0;
fpsCountProvider.SpanRefreshCallback =
() =>
{
/*
Console.Clear();
Console.WriteLine(FrameSpeed);
/**/
Interlocked.Exchange(ref _frameSpeed, _frameCount);
Interlocked.Exchange(ref _frameCount, 0);
};
fpsCountProvider.SpanRefreshCallback = CountFps;
long frameLength = (framespeed > 0) ? ((1000L * 1000L) / framespeed) : 0;
frameTimeProvider = new TimeSpanProvider(
frameLength, TimeSpanProvider.DefaultProvider
@@ -112,6 +98,16 @@ namespace StgSharp.Logic
_globalKeyAction = new Dictionary<KeyTrigger, Action>();
}
private void CountFps()
{
/**/
Console.Clear();
Console.WriteLine(FrameSpeed);
/**/
Interlocked.Exchange(ref _frameSpeed, _frameCount);
Interlocked.Exchange(ref _frameCount, 0);
}
public int CurrentFrameCount => frameTimeProvider.CurrentSpan;
public int FrameSpeed => _frameSpeed;