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:
@@ -957,6 +957,57 @@ public unsafe struct VkImageCreateInfo
|
||||
public VkImageLayout initialLayout;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public unsafe struct VkImageSubresourceLayers
|
||||
{
|
||||
public VkImageAspectFlags aspectMask;
|
||||
public uint mipLevel;
|
||||
public uint baseArrayLayer;
|
||||
public uint layerCount;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public unsafe struct VkBufferImageCopyRegion
|
||||
{
|
||||
public ulong bufferOffset;
|
||||
public uint bufferRowLength;
|
||||
public uint bufferImageHeight;
|
||||
public VkImageSubresourceLayers imageSubresource;
|
||||
public VkOffset3D imageOffset;
|
||||
public VkExtent3D imageExtent;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public unsafe struct VkSamplerCreateInfo
|
||||
{
|
||||
public VkStructureType sType;
|
||||
public nint pNext;
|
||||
public uint flags;
|
||||
public VkFilter magFilter;
|
||||
public VkFilter minFilter;
|
||||
public VkSamplerMipmapMode mipmapMode;
|
||||
public VkSamplerAddressMode addressModeU;
|
||||
public VkSamplerAddressMode addressModeV;
|
||||
public VkSamplerAddressMode addressModeW;
|
||||
public float mipLodBias;
|
||||
public VkBool32 anisotropyEnable;
|
||||
public float maxAnisotropy;
|
||||
public VkBool32 compareEnable;
|
||||
public VkCompareOp compareOp;
|
||||
public float minLod;
|
||||
public float maxLod;
|
||||
public int borderColor;
|
||||
public VkBool32 unnormalizedCoordinates;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public unsafe struct VkDescriptorImageInfo
|
||||
{
|
||||
public VkSampler sampler;
|
||||
public VkImageView imageView;
|
||||
public VkImageLayout imageLayout;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public unsafe struct VkPushConstantRange
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user