Files
emil28092005 80238b08f5 feat: pure Vulkan P/Invoke renderer — no wrappers, SDL3 window, SPIR-V shaders
- Engine.Graphics: restored interfaces (IRenderContext, IRenderer, RenderBackendFactory),
  loaders (ObjLoader, GltfLoader), ProceduralMesh, MeshMath, SceneSerializer
- Engine.Graphics.Vulkan: pure P/Invoke to libvulkan.so.1/vulkan-1.dll
  - VulkanNative: library loading, function pointer loading via vkGetInstanceProcAddr
  - Vk: static function cache for ~80 Vulkan functions, all delegate types
  - VulkanTypes: ~50 structs, ~20 enums matching Vulkan C headers
  - VulkanContext: instance, physical device, logical device, surface, memory types
  - VulkanSwapchain: swapchain, image views, depth image, render pass, framebuffers
  - VulkanPipeline: graphics pipeline, descriptor set layout, shader modules
  - VulkanBuffer: vertex/index/uniform buffers, staging, memory allocation
  - VulkanRenderer: command buffers, sync (semaphores/fences), render loop, 2 frames in flight
  - GLSL 450 shaders: PBR lighting (Fresnel, ACES, gamma), directional+point lights
  - Compiled to SPIR-V via @webgpu/glslang WASM
- CortexEngine.App: switched to vulkan backend, removed Raylib/OpenTK/ImGui refs
- Tests: all 66 pass (ObjLoader, MeshMath, ProceduralMesh, SceneSerializer, etc.)
- Camera tour: 16 poses, screenshots captured, clean shutdown
2026-06-17 23:03:24 +03:00

167 lines
12 KiB
Plaintext

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Engine.Core", "src\Engine.Core\Engine.Core.csproj", "{11111111-1111-1111-1111-111111111111}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Engine.Graphics", "src\Engine.Graphics\Engine.Graphics.csproj", "{22222222-2222-2222-2222-222222222222}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CortexEngine.App", "src\CortexEngine.App\CortexEngine.App.csproj", "{33333333-3333-3333-3333-333333333333}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Engine.AI", "src\Engine.AI\Engine.AI.csproj", "{44444444-4444-4444-4444-444444444444}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Engine.Graphics.Vulkan", "src\Engine.Graphics.Vulkan\Engine.Graphics.Vulkan.csproj", "{43C6A648-4F0C-4440-95E3-733BD8D29BCE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Engine.Tests", "tests\Engine.Tests\Engine.Tests.csproj", "{55555555-5555-5555-5555-555555555555}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Engine.Physics", "src\Engine.Physics\Engine.Physics.csproj", "{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
ReleaseAOT|Any CPU = ReleaseAOT|Any CPU
ReleaseAOT|x64 = ReleaseAOT|x64
ReleaseAOT|x86 = ReleaseAOT|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{11111111-1111-1111-1111-111111111111}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{11111111-1111-1111-1111-111111111111}.Debug|Any CPU.Build.0 = Debug|Any CPU
{11111111-1111-1111-1111-111111111111}.Debug|x64.ActiveCfg = Debug|Any CPU
{11111111-1111-1111-1111-111111111111}.Debug|x64.Build.0 = Debug|Any CPU
{11111111-1111-1111-1111-111111111111}.Debug|x86.ActiveCfg = Debug|Any CPU
{11111111-1111-1111-1111-111111111111}.Debug|x86.Build.0 = Debug|Any CPU
{11111111-1111-1111-1111-111111111111}.Release|Any CPU.ActiveCfg = Release|Any CPU
{11111111-1111-1111-1111-111111111111}.Release|Any CPU.Build.0 = Release|Any CPU
{11111111-1111-1111-1111-111111111111}.Release|x64.ActiveCfg = Release|Any CPU
{11111111-1111-1111-1111-111111111111}.Release|x64.Build.0 = Release|Any CPU
{11111111-1111-1111-1111-111111111111}.Release|x86.ActiveCfg = Release|Any CPU
{11111111-1111-1111-1111-111111111111}.Release|x86.Build.0 = Release|Any CPU
{11111111-1111-1111-1111-111111111111}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU
{11111111-1111-1111-1111-111111111111}.ReleaseAOT|Any CPU.Build.0 = ReleaseAOT|Any CPU
{11111111-1111-1111-1111-111111111111}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU
{11111111-1111-1111-1111-111111111111}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU
{11111111-1111-1111-1111-111111111111}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU
{11111111-1111-1111-1111-111111111111}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU
{22222222-2222-2222-2222-222222222222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{22222222-2222-2222-2222-222222222222}.Debug|Any CPU.Build.0 = Debug|Any CPU
{22222222-2222-2222-2222-222222222222}.Debug|x64.ActiveCfg = Debug|Any CPU
{22222222-2222-2222-2222-222222222222}.Debug|x64.Build.0 = Debug|Any CPU
{22222222-2222-2222-2222-222222222222}.Debug|x86.ActiveCfg = Debug|Any CPU
{22222222-2222-2222-2222-222222222222}.Debug|x86.Build.0 = Debug|Any CPU
{22222222-2222-2222-2222-222222222222}.Release|Any CPU.ActiveCfg = Release|Any CPU
{22222222-2222-2222-2222-222222222222}.Release|Any CPU.Build.0 = Release|Any CPU
{22222222-2222-2222-2222-222222222222}.Release|x64.ActiveCfg = Release|Any CPU
{22222222-2222-2222-2222-222222222222}.Release|x64.Build.0 = Release|Any CPU
{22222222-2222-2222-2222-222222222222}.Release|x86.ActiveCfg = Release|Any CPU
{22222222-2222-2222-2222-222222222222}.Release|x86.Build.0 = Release|Any CPU
{22222222-2222-2222-2222-222222222222}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU
{22222222-2222-2222-2222-222222222222}.ReleaseAOT|Any CPU.Build.0 = ReleaseAOT|Any CPU
{22222222-2222-2222-2222-222222222222}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU
{22222222-2222-2222-2222-222222222222}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU
{22222222-2222-2222-2222-222222222222}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU
{22222222-2222-2222-2222-222222222222}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU
{33333333-3333-3333-3333-333333333333}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33333333-3333-3333-3333-333333333333}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33333333-3333-3333-3333-333333333333}.Debug|x64.ActiveCfg = Debug|Any CPU
{33333333-3333-3333-3333-333333333333}.Debug|x64.Build.0 = Debug|Any CPU
{33333333-3333-3333-3333-333333333333}.Debug|x86.ActiveCfg = Debug|Any CPU
{33333333-3333-3333-3333-333333333333}.Debug|x86.Build.0 = Debug|Any CPU
{33333333-3333-3333-3333-333333333333}.Release|Any CPU.ActiveCfg = Release|Any CPU
{33333333-3333-3333-3333-333333333333}.Release|Any CPU.Build.0 = Release|Any CPU
{33333333-3333-3333-3333-333333333333}.Release|x64.ActiveCfg = Release|Any CPU
{33333333-3333-3333-3333-333333333333}.Release|x64.Build.0 = Release|Any CPU
{33333333-3333-3333-3333-333333333333}.Release|x86.ActiveCfg = Release|Any CPU
{33333333-3333-3333-3333-333333333333}.Release|x86.Build.0 = Release|Any CPU
{33333333-3333-3333-3333-333333333333}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU
{33333333-3333-3333-3333-333333333333}.ReleaseAOT|Any CPU.Build.0 = ReleaseAOT|Any CPU
{33333333-3333-3333-3333-333333333333}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU
{33333333-3333-3333-3333-333333333333}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU
{33333333-3333-3333-3333-333333333333}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU
{33333333-3333-3333-3333-333333333333}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU
{44444444-4444-4444-4444-444444444444}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44444444-4444-4444-4444-444444444444}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44444444-4444-4444-4444-444444444444}.Debug|x64.ActiveCfg = Debug|Any CPU
{44444444-4444-4444-4444-444444444444}.Debug|x64.Build.0 = Debug|Any CPU
{44444444-4444-4444-4444-444444444444}.Debug|x86.ActiveCfg = Debug|Any CPU
{44444444-4444-4444-4444-444444444444}.Debug|x86.Build.0 = Debug|Any CPU
{44444444-4444-4444-4444-444444444444}.Release|Any CPU.ActiveCfg = Release|Any CPU
{44444444-4444-4444-4444-444444444444}.Release|Any CPU.Build.0 = Release|Any CPU
{44444444-4444-4444-4444-444444444444}.Release|x64.ActiveCfg = Release|Any CPU
{44444444-4444-4444-4444-444444444444}.Release|x64.Build.0 = Release|Any CPU
{44444444-4444-4444-4444-444444444444}.Release|x86.ActiveCfg = Release|Any CPU
{44444444-4444-4444-4444-444444444444}.Release|x86.Build.0 = Release|Any CPU
{44444444-4444-4444-4444-444444444444}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU
{44444444-4444-4444-4444-444444444444}.ReleaseAOT|Any CPU.Build.0 = ReleaseAOT|Any CPU
{44444444-4444-4444-4444-444444444444}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU
{44444444-4444-4444-4444-444444444444}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU
{44444444-4444-4444-4444-444444444444}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU
{44444444-4444-4444-4444-444444444444}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Debug|x64.ActiveCfg = Debug|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Debug|x64.Build.0 = Debug|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Debug|x86.ActiveCfg = Debug|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Debug|x86.Build.0 = Debug|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Release|Any CPU.Build.0 = Release|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Release|x64.ActiveCfg = Release|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Release|x64.Build.0 = Release|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Release|x86.ActiveCfg = Release|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.Release|x86.Build.0 = Release|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.ReleaseAOT|Any CPU.ActiveCfg = ReleaseAOT|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.ReleaseAOT|Any CPU.Build.0 = ReleaseAOT|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU
{43C6A648-4F0C-4440-95E3-733BD8D29BCE}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU
{55555555-5555-5555-5555-555555555555}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55555555-5555-5555-5555-555555555555}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55555555-5555-5555-5555-555555555555}.Debug|x64.ActiveCfg = Debug|Any CPU
{55555555-5555-5555-5555-555555555555}.Debug|x64.Build.0 = Debug|Any CPU
{55555555-5555-5555-5555-555555555555}.Debug|x86.ActiveCfg = Debug|Any CPU
{55555555-5555-5555-5555-555555555555}.Debug|x86.Build.0 = Debug|Any CPU
{55555555-5555-5555-5555-555555555555}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55555555-5555-5555-5555-555555555555}.Release|Any CPU.Build.0 = Release|Any CPU
{55555555-5555-5555-5555-555555555555}.Release|x64.ActiveCfg = Release|Any CPU
{55555555-5555-5555-5555-555555555555}.Release|x64.Build.0 = Release|Any CPU
{55555555-5555-5555-5555-555555555555}.Release|x86.ActiveCfg = Release|Any CPU
{55555555-5555-5555-5555-555555555555}.Release|x86.Build.0 = Release|Any CPU
{55555555-5555-5555-5555-555555555555}.ReleaseAOT|x64.ActiveCfg = ReleaseAOT|Any CPU
{55555555-5555-5555-5555-555555555555}.ReleaseAOT|x64.Build.0 = ReleaseAOT|Any CPU
{55555555-5555-5555-5555-555555555555}.ReleaseAOT|x86.ActiveCfg = ReleaseAOT|Any CPU
{55555555-5555-5555-5555-555555555555}.ReleaseAOT|x86.Build.0 = ReleaseAOT|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Debug|x64.ActiveCfg = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Debug|x64.Build.0 = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Debug|x86.ActiveCfg = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Debug|x86.Build.0 = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Release|Any CPU.Build.0 = Release|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Release|x64.ActiveCfg = Release|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Release|x64.Build.0 = Release|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Release|x86.ActiveCfg = Release|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.Release|x86.Build.0 = Release|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.ReleaseAOT|Any CPU.ActiveCfg = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.ReleaseAOT|Any CPU.Build.0 = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.ReleaseAOT|x64.ActiveCfg = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.ReleaseAOT|x64.Build.0 = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.ReleaseAOT|x86.ActiveCfg = Debug|Any CPU
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883}.ReleaseAOT|x86.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{3F5F10AA-A4CD-4E37-B4CE-B37BC60C3883} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
EndGlobalSection
EndGlobal