feat: basic sdl3 basic windowing
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
using Engine.Core;
|
||||
using Engine.Core.Debug;
|
||||
using Engine.Core.Serialization;
|
||||
using Engine.Integration.SDL3;
|
||||
using Engine.Serializers.Yaml;
|
||||
using Engine.Systems.Network;
|
||||
using Engine.Systems.Time;
|
||||
@@ -22,6 +23,9 @@ universe.InstantiateUniverseObject().SetUniverseObject("Logger")
|
||||
|
||||
IUniverseObject desktopParent = universe.InstantiateUniverseObject().SetUniverseObject("Desktop");
|
||||
|
||||
// universe.InstantiateUniverseObject().SetUniverseObject("Desktop Inputs", desktopParent)
|
||||
// .BehaviourController.AddBehaviour<DesktopInputs>();
|
||||
|
||||
universe.InstantiateUniverseObject().SetUniverseObject("Visual Managers", desktopParent)
|
||||
.BehaviourController.AddBehaviour<DrawManager>();
|
||||
|
||||
@@ -36,8 +40,38 @@ MyUniverse.Shared.UniverseSource.ApplyUniverse(universe);
|
||||
|
||||
desktopParent.AddChild(universe.InstantiateUniverseObject().SetUniverseObject("Triangle Batcher").BehaviourController.AddBehaviour<Engine.Systems.Graphics.TriangleBatcher>().UniverseObject);
|
||||
|
||||
Sdl3Window window = Engine.Core.Factory.BehaviourFactory.Instantiate<Sdl3Window>();
|
||||
window.Title = "MyUniverse";
|
||||
window.Size = new(800, 600);
|
||||
window.Mode = WindowMode.BorderlessWindowed;
|
||||
|
||||
IUniverseObject windowUO = universe.InstantiateUniverseObject().SetUniverseObject("SDL3 Window", desktopParent);
|
||||
windowUO.BehaviourController.AddBehaviour(window);
|
||||
|
||||
// Testing Start
|
||||
TickerStopwatch tickerStopwatch = windowUO.BehaviourController.AddBehaviour<TickerStopwatch>();
|
||||
tickerStopwatch.Period = 5f;
|
||||
tickerStopwatch.OnTick.AddListener(sender =>
|
||||
{
|
||||
if (window.IsInitialized)
|
||||
windowUO.BehaviourController.RemoveBehaviour(window);
|
||||
else
|
||||
windowUO.BehaviourController.AddBehaviour(window);
|
||||
});
|
||||
tickerStopwatch.Start();
|
||||
// Testing End
|
||||
|
||||
universe.Initialize();
|
||||
|
||||
// window.OnRender.AddListener((sender, args) => universe.Draw());
|
||||
// window.OnUpdate.AddListener((sender, args) =>
|
||||
// {
|
||||
// timeSinceStart += args.TimeSpan;
|
||||
// universe.Update(new(timeSinceStart, args.TimeSpan));
|
||||
// });
|
||||
|
||||
// window.Run();
|
||||
|
||||
DateTime lastRun = DateTime.UtcNow;
|
||||
TimeSpan timeSinceStart = new(0);
|
||||
|
||||
@@ -52,3 +86,21 @@ while (true)
|
||||
lastRun = now;
|
||||
System.Threading.Thread.Sleep(1);
|
||||
}
|
||||
|
||||
// DateTime lastRun = DateTime.UtcNow;
|
||||
// TimeSpan interval = new(0, 0, 0, 0, 16);
|
||||
// TimeSpan timeSinceStart = new(0);
|
||||
|
||||
// universe.Initialize();
|
||||
|
||||
// while (true)
|
||||
// {
|
||||
// if (lastRun + interval <= DateTime.UtcNow)
|
||||
// {
|
||||
// lastRun += interval;
|
||||
// timeSinceStart += interval;
|
||||
// universe.Update(new(timeSinceStart, interval));
|
||||
// }
|
||||
|
||||
// Thread.Sleep(1);
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user