Fixed FPS issue.

This commit is contained in:
2026-09-07 10:43:49 -04:00
parent 189c0af447
commit cba40ba2db
2 changed files with 46 additions and 13 deletions

View File

@@ -1,17 +1,31 @@
using System;
using System.Runtime.InteropServices;
using var game = new FreedomFighter.Game1();
// debug aid: --shot <file> [frames] renders, saves the backbuffer to a PNG, and exits
var cmdArgs = Environment.GetCommandLineArgs();
for (int i = 1; i < cmdArgs.Length - 1; i++)
// 1ms timer resolution so the 120Hz fixed timestep's Thread.Sleep doesn't overshoot
// (default ~15.6ms granularity caps the loop at 80-90 FPS; OmegaTimer did the same)
[DllImport("winmm.dll")] static extern uint timeBeginPeriod(uint ms);
[DllImport("winmm.dll")] static extern uint timeEndPeriod(uint ms);
timeBeginPeriod(1);
try
{
if (cmdArgs[i] == "--shot")
using var game = new FreedomFighter.Game1();
// debug aid: --shot <file> [frames] renders, saves the backbuffer to a PNG, and exits
var cmdArgs = Environment.GetCommandLineArgs();
for (int i = 1; i < cmdArgs.Length - 1; i++)
{
game.ShotFile = cmdArgs[i + 1];
if (i + 2 < cmdArgs.Length && int.TryParse(cmdArgs[i + 2], out int frames))
game.ShotFrames = frames;
if (cmdArgs[i] == "--shot")
{
game.ShotFile = cmdArgs[i + 1];
if (i + 2 < cmdArgs.Length && int.TryParse(cmdArgs[i + 2], out int frames))
game.ShotFrames = frames;
}
if (cmdArgs[i] == "--level" && int.TryParse(cmdArgs[i + 1], out int level))
game.StartLevel = level;
}
if (cmdArgs[i] == "--level" && int.TryParse(cmdArgs[i + 1], out int level))
game.StartLevel = level;
game.Run();
}
finally
{
timeEndPeriod(1);
}
game.Run();