feat: ImGui debug overlay — FPS, camera position, entity count

- ImGui.NET 1.91.6.1 integrated into Engine.Graphics.Vulkan
- VulkanImGui.cs: font atlas upload (staging → VkImage), sampler,
  descriptor set (COMBINED_IMAGE_SAMPLER), separate pipeline with
  alpha blending, no depth write, dynamic scissor
- ImGui shaders: imgui.vert (ortho MVP push constant) + imgui.frag
  (font texture sampler)
- Dynamic vertex/index buffers (HOST_VISIBLE, grow on demand)
- IRenderer interface: BeginImGuiFrame/EndImGuiFrame default methods
- Program.cs: debug window with FPS, camera pos/target, entity count
- 0 critical validation errors, ~750 FPS with physics + ImGui
This commit is contained in:
emil28092005
2026-06-18 17:34:42 +03:00
parent e67e312d28
commit bfde04b381
14 changed files with 906 additions and 2 deletions
+12
View File
@@ -13,4 +13,16 @@ public interface IRenderer : IDisposable
void RequestScreenshot(string path);
bool IsScreenshotRequested { get; }
IScreenshotProvider ScreenshotProvider { get; }
/// <summary>
/// Called before RenderWorld to begin a new ImGui frame.
/// Null if the backend doesn't support ImGui.
/// </summary>
void BeginImGuiFrame() { }
/// <summary>
/// Called after RenderWorld to render ImGui draw data.
/// Null if the backend doesn't support ImGui.
/// </summary>
void EndImGuiFrame() { }
}