zeroerr's --testcase-exclude=/--file=/--file-exclude= parsing had off-by-one
prefix checks; the fix was carried as a build-time vendored patch
(cmake/patches/zeroerr-file-filter.patch). The change is now upstream on
zeroerr master (43c31f6), so bump the submodule pin and delete the
redundant patch + its configure-time application.
Submodule commit 3486940e (on top of 4b266bf): present-wait semaphores are
now indexed by the acquired swapchain image instead of the frame slot, fixing
VUID-vkQueueSubmit-pSignalSemaphores-00067 (a classic driver-TDR source when
frames_in_flight < image_count). Verified: validation-layer report for this
VUID is gone in GpuDriven.* and RenderSystem3D.* runs.
Port the deferred FrameGraph integration onto main's split Vulkan backend:
- Graphics3D.cpp owns buildDeferredFrameGraphs / recordDeferredFrameGraph /
recordShadowCascadePass / recordGBufferPassDraws (parallel JobSystem
recording, one command pool per frame-slot per pass).
- begin3DFrame / beginSwapchainRenderPass / flushToSwapchain 2D-only path
call recordDeferredFrameGraph() instead of the serial pending passes.
- Drop the superseded serial recordPendingShadowPasses/GBufferPass and the
duplicate culling implementation (main's RenderSystem3D already carries
the per-camera / per-cascade frustum culling).
- VKBuilder submodule -> 51514d9 (master; our spec-safe pool/lifecycle PR
was merged upstream as sunxfancy/VKBuilder#2).
- Introduced a new CI job for building WebGPU using Emscripten and WASM.
- Configured steps for checking out the repository, installing necessary system packages, and setting up the Emscripten SDK.
- Added build and verification steps for WebGPU artifacts.
- Updated job names for Windows, macOS, Android, and iOS for better clarity.
- Added dedicated Android and iOS build steps, including installation of necessary tools and Vulkan SDK.
- Removed redundant steps from Windows and macOS jobs to streamline the CI process.
Move the user-maintained VKBuilder from the third-party aggregate into external/ (git submodule), and relocate the third-party DungeonTemplateLibrary and Box3D from external/ into the third-party aggregate (previously pushed to EVEngine/third-party). Update .gitmodules, include paths, DTL/box3d build wiring, and docs.
Add Erin Catto's Box3D (v0.1.0) as external/box3d and expose World3D,
Body3D, and Shape3D through Physics.newWorld3D, mirroring the existing
Box2D script API with meter-space coordinates, queries, and contact events.
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* docs(procgen): add procedural generation module design
Capture confirmed product direction (runtime map-first, textures
second, pixel/low-poly RPG) plus API sketch, algorithm registry,
configurable outputs, and Phase A checklist.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* docs(procgen): list procgen in module summary table
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* feat(procgen): Phase A runtime map generation with DTL
Add eve.Procgen module: semantic Grid2D, algorithm registry, palettes,
and TileLayer/JSON outputs. Built-ins use Dungeon Template Library
(BSP, cellular cave, maze, perlin terrain) plus local drunkard walk.
Includes tests and examples/procgen demo.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* feat(procgen): Phase B runtime pixel texture recipes
Add seamless value-noise texture generation with banded color ramps
for soil/stone/marble/water/sky_cloud, ImageData/Texture/normal outputs,
and script bindings for gfx.newTexture / drawTexturedRect.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(test): qualify eve::image::ImageData in procgen tests
Bare image:: failed to resolve under `using namespace eve::procgen`,
breaking unit_test builds on Linux/Windows/macOS CI.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(procgen): link EVProcgen in tests and fix Apple Clang DTL build
unit_test was missing EVProcgen, causing undefined references on Linux/Windows.
Avoid the DTL umbrella header (broken Voronoi CRTP on Apple Clang) and provide
DrawJagged* compat shims that define the missing drawOperatorArray.
Verified locally: linux-debug build, unit_test link, and all 13 procgen ctests.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Add sunxfancy/ik.hpp as a git submodule and wrap FABRIK solving in
eve.IK (Skeleton2D/3D, Solver2D/3D) for scripted inverse kinematics.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
Keep macOS/Linux/iOS deps as Release to avoid physfsd rename, and only
build Windows third-party as Debug with md/mdd postfixes. Point zeroerr
at the GCC-safe is_array fix for incomplete Vulkan/SDL handles.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Improved CMake configuration for Vulkan on iOS, allowing for dynamic and static linking of MoltenVK based on availability.
- Updated the script for resolving Vulkan SDK paths to prioritize dynamic frameworks and provide warnings for missing components.
- Introduced a new scene module, enabling a declarative scene tree structure that mirrors the UI system, enhancing the engine's capabilities for scene management.
- Updated documentation to reflect the new scene module and its integration with existing systems.
- Enhanced test coverage by including new tests for the scene module.
These changes significantly improve Vulkan support on iOS and expand the engine's modular architecture.
- Implemented multi-layer tilemap functionality, allowing for the reading and saving of Tiled JSON formats.
- Added support for various tile projections (orthogonal, isometric, staggered, hexagonal) and depth calculations.
- Introduced object layer parsing and caching for improved map object management.
- Updated the rendering system to unify 2D depth queues and enhance sprite handling.
- Added new methods for accessing object properties, including position and dimensions.
This update significantly improves the map module's capabilities and integration with the rendering system.
- Updated the zeroerr submodule to the latest commit for improved functionality.
- Modified CMakeLists.txt to include additional system libraries for better compatibility across UNIX platforms.
- Added <cstdint> includes in multiple header files to ensure proper type definitions.
- Introduced a new hotReload variable in the demo script to support dynamic updates.
Point submodule at the ECS.hpp commits that create the registry before
View::ensure_space and sync the fixed zeroerr header for tests.
Co-authored-by: Cursor <cursoragent@cursor.com>