feat: ImGui integration + real screenshot capture via Vulkan

ImGui:
- ImGui.NET 1.91.6.1 NuGet package
- VulkanImGui: font texture upload, ImGui pipeline (blending, no depth), vertex/index buffer streaming
- GLSL 450 ImGui shaders (vert: scale/translate push constants, frag: font texture sampler)
- Compiled to SPIR-V via @webgpu/glslang
- Debug overlay: FPS, camera position, entity count, light list
- 1600+ FPS with ImGui active

Screenshot:
- vkCmdCopyImageToBuffer embedded in main command buffer
- Layout transition PresentSrcKHR→TransferSrcOptimal→PresentSrcKHR
- Deferred read: staging buffer read on next frame after fence
- BMP format written directly to FileStream (row by row)
- All 16 camera tour screenshots captured (1280x720x32bpp)

All 66 tests pass.
This commit is contained in:
emil28092005
2026-06-17 23:39:38 +03:00
parent 544f6b59c0
commit 749fbc8df4
16 changed files with 838 additions and 231 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ using System.Text;
namespace Engine.Graphics.Vulkan;
internal sealed unsafe class VulkanPipeline : IDisposable
public sealed unsafe class VulkanPipeline : IDisposable
{
public VkPipelineLayout PipelineLayout;
public VkPipeline Pipeline;