Editor dummy code

This commit is contained in:
max 2024-07-12 17:27:01 +02:00
parent dd3bbf1d5b
commit 16b04ea22a
4 changed files with 72 additions and 4 deletions

View File

@ -0,0 +1,30 @@
namespace Nerfed.Editor.Editor
{
internal static class EditorGui
{
internal static void Initialize()
{
// Create GuiController.
// Subscribe to GUI update.
// GuiController.OnGui call => UpdateDock;
// GuiController.OnGui call => UpdateEditorWindows;
// GuiController.OnGui call => ...;
}
internal static void Update()
{
// Update GuiController.
}
internal static void Render()
{
// Reneder GuiController.
}
private static void UpdateDock()
{
// Setup default dockspace for the main window.
}
}
}

View File

@ -23,8 +23,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Nerfed.Runtime\Nerfed.Runtime.csproj"/> <ProjectReference Include="..\Nerfed.Runtime\Nerfed.Runtime.csproj" />
</ItemGroup> </ItemGroup>
<Import Project=".\CopyLibs.targets"/> <Import Project=".\CopyLibs.targets" />
</Project> </Project>

View File

@ -6,6 +6,33 @@ internal class Program
{ {
private static void Main(string[] args) private static void Main(string[] args)
{ {
Engine.OnInitialize += HandleOnInitialize;
Engine.OnUpdate += HandleOnUpdate;
Engine.OnRender += HandleOnRender;
Engine.OnQuit += HandleOnQuit;
Engine.Run(args); Engine.Run(args);
} }
}
private static void HandleOnInitialize()
{
// Open project.
// Setip EditorGui.
}
private static void HandleOnUpdate()
{
// Editor Update.
// Try Catch UserCode Update.
}
private static void HandleOnRender()
{
// Editor GUI Render.
}
private static void HandleOnQuit()
{
}
}

View File

@ -1,12 +1,17 @@
using System.Diagnostics;
using Nerfed.Runtime.Audio; using Nerfed.Runtime.Audio;
using Nerfed.Runtime.Graphics; using Nerfed.Runtime.Graphics;
using SDL2; using SDL2;
using System.Diagnostics;
namespace Nerfed.Runtime; namespace Nerfed.Runtime;
public static class Engine public static class Engine
{ {
public static event Action OnInitialize;
public static event Action OnUpdate;
public static event Action OnRender;
public static event Action OnQuit;
public static TimeSpan MaxDeltaTime { get; set; } = TimeSpan.FromMilliseconds(100); public static TimeSpan MaxDeltaTime { get; set; } = TimeSpan.FromMilliseconds(100);
public static bool VSync { get; set; } public static bool VSync { get; set; }
@ -65,11 +70,15 @@ public static void Run(string[] args)
AudioDevice = new AudioDevice(); AudioDevice = new AudioDevice();
OnInitialize?.Invoke();
while (!quit) while (!quit)
{ {
Tick(); Tick();
} }
OnQuit?.Invoke();
GraphicsDevice.UnclaimWindow(MainWindow); GraphicsDevice.UnclaimWindow(MainWindow);
MainWindow.Dispose(); MainWindow.Dispose();
GraphicsDevice.Dispose(); GraphicsDevice.Dispose();
@ -146,6 +155,7 @@ private static void Tick()
ProcessSDLEvents(); ProcessSDLEvents();
// Tick game here... // Tick game here...
OnUpdate?.Invoke();
AudioDevice.WakeThread(); AudioDevice.WakeThread();
accumulatedUpdateTime -= Timestep; accumulatedUpdateTime -= Timestep;
@ -154,6 +164,7 @@ private static void Tick()
double alpha = accumulatedUpdateTime / Timestep; double alpha = accumulatedUpdateTime / Timestep;
// Render here.. // Render here..
OnRender?.Invoke();
accumulatedDrawTime -= framerateCapTimeSpan; accumulatedDrawTime -= framerateCapTimeSpan;
} }