v0.12.0
github-actions
released this
14 Nov 16:15
·
307 commits
to master
since this release
What's Changed
- Runs now support custom variables that are key value pairs that either the user can specify in the run editor or are provided by a script like an auto splitter. #201
- There is now an option in the run editor to generate a comparison based on a user specified goal time. This uses the same algorithm as the
Balanced PB
comparison but with the time specified instead of the personal best. #209 - Images internally are now stored as is without being reencoded as Base64 which was done before in order to make it easier for the web LiveSplit One to display them. #227
- The Splits.io API is now available under the optional
networking
feature. #236 - All key value based components share the same component state type now. #257
- The crate now properly supports
wasm-bindgen
andWASI
. #263 - There is now a dedicated component for displaying the comparison's segment time. #264
- Compiling the crate without
std
is now supported. Most features are not supported at this time though. #270 Splitterino
splits can now be parsed. #276- The
Timer
component can now show a segment timer instead. #288 - Gamepads are now supported on the web. #310
- The underlying "skill curve" that the
Balanced PB
samples is now exposed in the API. #330 - The layout states can now be updated, which means almost all of the allocations can be reused from the previous frame. This is a lot faster. #334
- In order to calculate a layout state, the timer now provides a snapshot mechanism that ensures that the layout state gets calculated at a fixed point in time. #339
- Text shaping is now done via
rustybuzz
which is a port ofharfbuzz
. #378 - Custom fonts are now supported. #385
- The renderer is not based on meshes anymore that are suitable for rendering with a 3D graphics API. Instead the renderer is now based on paths, which are suitable for rendering with a 2D graphics API such as Direct2D, Skia, HTML Canvas, and many more. The software renderer is now based on
tiny-skia
which is so fast that it actually outperforms any other rendering and is the recommended way to render. #408 - Remove support for parsing
worstrun
splits.worstrun
doesn't support splits anymore, solivesplit-core
doesn't need to keep its parsing support. #411 - Remove support for parsing
Llanfair 2
splits.Llanfair 2
was never publicly available and is now deleted entirely. #420 - Hotkeys are now supported on macOS. #422
- The renderer is now based on two layers. A bottom layer that rarely needs to be rerendered and the top layer that needs to be rerendered on every frame. Additionally the renderer is now a scene manager which manages a scene that an actual rendering backend can then render out. #430
- The hotkeys are now based on the UI Events KeyboardEvent code Values web standard. #440
- Timing is now based on
CLOCK_BOOTTIME
on Linux andCLOCK_MONOTONIC
on macOS and iOS. This ensures that all platforms keep tracking time while the operating system is in a suspended state. #445 - Segment time columns are now formatted as segment times. #448
- Hotkeys can now be resolved to the US keyboard layout. #452
- They hotkeys are now based on
keydown
instead ofkeypress
in the web.keydown
handles all keys whereaskeypress
only handles visual keys and is also deprecated. #455 - Hotkeys can now be resolved to the user's keyboard layout on both Windows and macOS. #459 and #460
- The
time
crate is now used instead ofchrono
for keeping track of time. #462 - The scene manager now caches a lot more information. This improves the performance a lot as it does not need to reshape the text on every frame anymore, which is a very expensive operation. #466 and #467
- The hotkeys on Linux are now based on
evdev
, which means Wayland is now supported. Additionally the hotkeys are not consuming the key press anymore. #474 - When holding down a key, the hotkey doesn't repeat anymore on Linux, macOS and WebAssembly. The problem still occurs on Windows at this time. #475 and #476
New Contributors
- @DarkRTA made their first contribution in #262
- @Ynscription made their first contribution in #312
- @mcdoll made their first contribution in #367
- @Splamy made their first contribution in #421
- @ash2x3zb9cy made their first contribution in #433
- @dependabot made their first contribution in #435
- @MichaelJBerk made their first contribution in #429
- @doesthisusername made their first contribution in #441
Full Changelog: v0.11.0...v0.12.0