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
emil28092005
270806a189
feat: OpenTK 4.x OpenGL backend — replaces Silk.NET, default renderer
...
- Deleted Engine.Graphics.OpenGL (Silk.NET) project
- Created Engine.Graphics.OpenTK with OpenTK 4.9.4
- OpenTKWindow: GameWindow + ProcessEvents() (non-blocking), SwapBuffers()
- OpenTKInputState: KeyboardState/MouseState → Engine.Core.Key
- OpenTKRenderer: raw OpenGL 3.3 Core, managed arrays (no unsafe),
OpenTK.Mathematics.Matrix4 (column-major, no transpose needed),
shadow FBO with depth texture, PCF 3x3, full PBR shader
- OpenTKRenderContext + OpenTKBackendRegistrar ('opentk')
- Program.cs: default backend is 'opentk'
- 66/66 tests, 0 errors, 1600 FPS (VSync off)
2026-06-17 21:24:33 +03:00
emil28092005
6e65eedf1d
wip: Silk.NET OpenGL backend — project structure, partial implementation
...
- Engine.Graphics.OpenGL project with Silk.NET.OpenGL, Windowing, Input
- OpenGLWindow (Silk.NET.Windowing), OpenGLInputState (Silk.NET.Input)
- OpenGLRenderer: full shader pipeline with shadow mapping, VAO/VBO upload
- OpenGLRenderContext, OpenGLBackendRegistrar
- Build errors due to Silk.NET 2.21 API differences — needs API investigation
- Raylib and Vulkan backends unchanged
2026-06-17 18:48:36 +03:00
emil28092005
cca89040c3
feat: JoltPhysicsSharp integration — physics simulation
...
- Engine.Physics project with JoltPhysicsSharp 2.21.0
- PhysicsWorld: PhysicsSystem init/update/dispose, body creation/removal,
transform sync (Jolt body → ECS Transform)
- RigidBody ECS component: MotionType (Static/Kinematic/Dynamic),
ShapeType (Box/Sphere), mass, friction, restitution, damping
- Factory methods: DynamicBox, DynamicSphere, StaticBox, StaticPlane
- Main loop integration: create bodies on first frame, step physics,
sync transforms back to ECS
- Demo scene: 6 dynamic cubes + 3 dynamic spheres fall from height,
static floor plane. Torus knot and textured cube remain static.
- Collision layers: NonMoving (floor), Moving (dynamic objects)
- JobSystemThreadPool for multi-threaded physics
- 66/66 tests passing, 0 warnings, 0 errors
2026-06-17 16:45:43 +03:00
emil28092005
fb6e26a268
feat: modular HAL, Raylib backend, PBR shading, textures, 60 unit tests
...
- Replace hardcoded SDL3 windowing with IWindow/IInputState/Key abstractions
- Each render backend owns its window (Raylib GLFW, SDL3 for Vulkan)
- Raylib backend: DrawModelEx, custom GLSL shader with Fresnel, ACES
tonemapping, gamma correction, hemisphere ambient
- Fix backface culling, mesh memory (NativeMemory.Alloc), texture loading
- Camera controllers use backend-agnostic Key enum (inverted yaw/strafe)
- Demo scene: 8 cubes, 7 spheres, torus knot OBJ with checker texture
- Extract ProceduralMesh + MeshMath from Program.cs to Engine.Graphics
- Vulkan backend deferred (compiles, untested, IWindow-compatible)
- 60 unit tests: ObjLoader, camera controllers, AiCommandProcessor,
RenderBackendFactory, Timing, ProceduralMesh, MeshMath, Transform
- AGENTS.md for opencode integration
2026-06-17 13:49:12 +03:00
emil28092005
2f21ffada4
feat: Step 5 AI agent command bridge
...
- Add new Engine.AI project referenced by the App.
- Define JSON command model: spawn_model, set_transform, delete_entity, list_entities.
- Implement AiCommandProcessor with System.Text.Json and custom Vector3/Quaternion converters.
- Wire processor into Program.cs; demo commands spawn and move a second cube.
- AI commands are executed against the live Flecs world and visible in the next frame.
2026-06-16 19:30:33 +03:00
emil28092005
6397488c61
feat: Step 1 SDL3 window + Vulkan context + clear screen
2026-06-16 17:21:43 +03:00