7 Commits
Author SHA1 Message Date
西风逍遥游 5977cfc055 test: consolidate representative voxel and input cases 2026-09-10 21:46:10 +08:00
西风逍遥游 0ce3cd616f feat(model3d): add UV texture painting
Map model surface hits to UV coordinates, paint ImageData in UV space, refresh textures in place, and add an interactive example with focused tests.
2026-08-30 03:37:08 +08:00
西风逍遥游 d9b76d7c15 test(image): pixel-format round-trips, cross-format paste, TGA encode
Covers ImageData.cpp CPU paths:
- set/getPixel round-trips for RGBA16/16F/32F/RGBA4/RGB5A1/RGB565/R8/RG8
- validPixelFormat/canPaste matrix + partial sub-region paste
- TGA encode/decode round-trip
Also fixes a latent bug found by the tests: setPixelRGBA16 stored
[r,b,g,a] while getPixelRGBA16 reads [r,g,b,a] (g/b swapped).
2026-08-22 10:12:47 +08:00
西风逍遥游andCursor Agent 4aeab04099 feat(image): ImageData 2D 像素旋转(逆映射 nearest/linear) (#39)
* feat(image): ImageData::rotate with inverse-map nearest/linear

Add CPU pixel rotation on ImageData using destination-to-source inverse
mapping (Geometric Tools / standard image processing). Supports nearest
and bilinear filters, optional canvas expand to fit the rotated AABB,
and matches Math::rotate2* angle convention. Includes unit tests, Font
script binding, and docs.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* test(image): assert exact 90° rotate pixel positions

Pin nearest+expand 90° mapping of corner markers to (1,2) and (0,0).

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* feat(image): implement RotSprite pixel-art rotation filter

Add Xenowhirl RotSprite as ImageData::rotate filter "rotsprite":
Scale2x×3 with color similarity, best 8×8 sampling offset search,
nearest-neighbor rotate+downscale, and single-pixel detail restore.
Quarter turns use an exact remapping fast path. Tests cover 90°
palette preservation and 45° no-new-colors.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

* fix(ci): M_PI on MSVC and GitHub API 403 for asset downloads

Windows unit tests failed because test/image.cpp used M_PI without the
MSVC fallback used by other test files. macOS build failed when
download_skinned_character.sh hit GitHub API 403 during PRE_BUILD; add
User-Agent + optional GITHUB_TOKEN auth to asset fetch scripts and pass
GITHUB_TOKEN in CI build steps.

Co-authored-by: 西风逍遥游 <sunxfancy@gmail.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-12 18:34:28 +08:00
sunxfancy 87d6062711 chore: update CMake configuration and enhance filesystem tests
- Modified CMakeLists.txt to include the `--recurse-submodules` option for Git clone commands, ensuring all submodules are fetched.
- Enhanced filesystem tests to cover additional scenarios, including memory data mounting and real directory resolution.
- Updated image tests to validate PNG encoding and decoding, ensuring proper handling of unsupported formats.
- Improved model3D tests to check for material counts and face normals, enhancing robustness of 3D model handling.
- Added error handling in sound tests for invalid data scenarios, ensuring stability in audio processing.

These changes improve the overall test coverage and configuration management of the project.
2026-08-08 16:19:14 +08:00
sunxfancy 1d270154b9 feat: add macOS support and improve platform handling
- Introduced platform-specific CMake configurations for macOS, including the addition of the EVPlatformMacOSX library.
- Enhanced Vulkan integration on macOS by requiring the LunarG Vulkan SDK and ensuring proper setup instructions in the documentation.
- Updated the Makefile to support macOS build targets alongside Windows and Linux.
- Improved CMakeLists and source files to handle platform-specific libraries and dependencies more effectively.
- Added detailed instructions for macOS setup in the README, including environment configuration for Vulkan SDK.
- Refactored existing code to ensure compatibility with macOS, including adjustments in event handling and graphics functionality.
2026-08-05 21:40:41 +08:00
西风逍遥游 e21dbcf1ea feat: enhance audio and data handling with new test cases
- Added comprehensive unit tests for audio functionalities, including playback control, volume adjustments, and source management.
- Implemented new tests for data handling, focusing on ByteData and DataView functionalities, ensuring proper memory management and error handling.
- Updated CMakeLists to include new test files for improved coverage and organization.
- Enhanced event handling tests to verify message processing and variant functionalities.
2026-08-05 17:51:48 +08:00