* test(graphics): enable mipmaps and anisotropy in classic scene loads
ClassicScenes Assimp albedo, RenderImageAudit studio checkers/rock maps,
and RenderSystem3D motif/checker textures now use TextureCreateInfo::withMipmaps
so flythroughs exercise trilinear + anisotropic filtering while engine defaults stay off.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(test): avoid REQUIRE on MipmapMode enum in ClassicScenes
zeroerr tries to stream enum values in assertion diagnostics and has no
operator<< for MipmapMode, which broke Linux/macOS/Windows CI builds.
Compare via static_cast<int> like TextureSampler.cpp.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(test): use .get() in unique_ptr REQUIRE checks
zeroerr assertion diagnostics copy compared values; REQUIRE(unique_ptr)
fails to compile because unique_ptr is non-copyable.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* feat(graphics): texture cell bombing to break tiling
Add UV-space cell bombing on the default mesh3d / clustered PBR paths:
per-cell random offset and rotation blended across a 2x2 neighborhood
(with textureGrad for stable mips). Opt-in via Renderable3D::setTexCellBomb
(strength 0 keeps prior behavior). Includes GLSL helper, SPIR-V embeds,
CPU reference header, docs, and smoke tests.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
* fix(graphics): rotate UVs in cell bombing; harden GPU test
Rotate UVs about each cell center (not just translate) so periodic
textures actually break tiling. Use the known-good UV cube + repeating
motif in the pixel smoke test.
Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
- Added new test cases for various graphics functionalities, including animation previews, particle effects, and inventory UI.
- Implemented rendering previews for Mixamo animations, Box2D physics, and procedural generation, allowing for real-time visualization during tests.
- Introduced helper functions for drawing graphics elements, improving the clarity and maintainability of test code.
- Enhanced existing tests to utilize the new graphics capabilities, ensuring comprehensive coverage of rendering features.
Add Math geometry tests for 2D/3D picking and overlaps, Physics
rayCast/queryAABB/testPoint, and Camera2D/3D screen pick helpers,
with script bindings, docs, and unit tests.
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
- 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 math module to include vector and matrix operations, noise generation, Bezier curves, and random number utilities.
- Introduced the tensor module, providing TensorFlow 2-style eager execution and graph building capabilities.
- Enhanced documentation to reflect the new features in the math and tensor modules, including usage examples and API references.
- Modified CMakeLists.txt to include the new math and tensor modules, ensuring proper build configurations.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Introduced a new optional demo module that includes procedural sound effects and planet texture generation.
- Updated the build system to support the demo module with the `EVENGINE_BUILD_DEMO` option.
- Enhanced the Makefile to synchronize game assets into the APK during the build process.
- Modified the AndroidManifest to set the screen orientation to portrait for better compatibility.
- Improved documentation to reflect the new demo features and asset synchronization process.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Added methods for file watching, including `watch`, `unwatch`, `unwatchAll`, `getWatchCount`, `pollWatch`, `getLastWatchPath`, and `getLastWatchRealPath`.
- Enhanced the `Filesystem` class to support monitoring file changes, allowing for real-time updates.
- Updated the `physfs` implementation to handle file watch targets and events.
- Improved documentation and added unit tests to validate the new file watching features.
Co-authored-by: Cursor <cursoragent@cursor.com>