PathOfBuilding
PathOfBuilding copied to clipboard
[Kalandra] [WIP] Swap asset-based rendering to sprite-based
Description of the problem being solved:
(this PR builds on @Nostrademous 's #4768 and also incorporates lots of feedback and research from @zao)
This PR rewrites PoB's asset rendering to do everything in terms of 3.19 TreeData-style sprites instead of pre-3.19 assets. It implements new logic in PassiveTree construction to migrate pre-3.19 trees' assets to a 3.19-equivalent spriteMap layout, and then updates all the other points that reference assets to instead reference spriteMap.
This required updating a few spots which previously assumed they were rendering entire images to instead propagate texture coordinates within a sprite sheet. Notable cases include:
DrawAsset(now renamedDrawSprite)'s logic for rendering half-imagesBuildConnectorandrenderConnectorlogic for rendering straight connector lines- TODO: arc connectors
Steps taken to verify a working solution:
- Verified that a 3.10 PoB with cluster jewels loads and renders reasonably
- Verified that a 3.18 PoB with cluster/legion jewels loads and renders reasonably, including checking/unchecking masteries and regular passives
- TODO: Verify that a complex 3.19 PoB loads and renders reasonably
Link to a build that showcases this PR:
TODO
Before screenshot:
TODO
After screenshot:
TODO