v3.1.0
Highlights
- Added project-based font collections with atomic runtime application and improved Godot-side font shaping and fallback.
- Refactored the coordinate system by separating logical and render coordinates and centralizing coordinate conversion across SPX and Godot.
- Optimized pen GPU rendering by batching pen state updates, reducing Web bridge calls, and synchronizing the pen canvas with stage geometry.
What's Changed
Features
- Added project font collections by @joeykchen in #1691
- Enabled Builder AI support for SPX v3 by @joeykchen in #1697
- Added optional SSA optimization for
ispxby @aofei in #1711
Performance
- Batched Web pen state updates while preserving command order by @joeykchen in #1713
- Optimized interpreter performance by @joeykchen in #1709
Refactors
- Applied project fonts atomically by @joeykchen in #1700
- Separated the project font runtime plan by @joeykchen in #1701
- Separated logical and render coordinates by @joeykchen in #1703
Fixes
- Aligned the
Allsprite size assertion with runtime behavior by @joeykchen in #1698 - Synchronized the pen canvas with stage geometry by @joeykchen in #1714
- Adjusted the
CoordinateSystemdemo markers by @joeykchen in #1710
Build
- Set up the macOS Vulkan SDK only for iOS builds by @joeykchen in #1704
- Isolated SCons in a virtual environment by @joeykchen in #1708
- Added LLGo build compatibility by @visualfc in #1699
Godot Runtime
- Added project font-face registration and ordered fallback support by @joeykchen in goplus/godot#322
- Added atomic project font shaping and registration by @joeykchen in goplus/godot#324
- Hardened project font shaping, fallback, and registration by @joeykchen in goplus/godot#326
- Centralized SPX coordinate conversion by @joeykchen in goplus/godot#327
- Optimized Web pen rendering by @joeykchen in goplus/godot#328
Docs and Tests
- Aligned development guides with the current runtime by @joeykchen in #1705
- Added a coordinate-system regression demo by @joeykchen in #1706
Release
- Upgraded the current version to v3.1.0 by @joeykchen in #1715