SixtyFPS UI Library
This week we were working towards the upcoming
This is a opportunity for us to fix things that were named poorly, to shuffle some code around, to remove deprecated APIs as well as turn some warnings into errors and to update our required tooling.
So many of the changes this week do break API, and we hope that these changes will make for a library that is easier to code for and easier for us to extend and maintain.
API Changes for Version
- Update required rust compiler version to
1.56and use C++ 20 for the C++ integration (#867)
Make use of
std::spanin C++ whenever we take a slice.
- Use edition 2021 for all crates (#871)
- Turn warnings into errors (#887)
Warnings about deprecated use of the
.60language were turned into errors.
- Model API was improved:
ModelHandlewas renamed to
Model::row_datanow returns an
Similarly the C++ API now returns an
- Remove default implementation of
This avoids models being constant due to the model author forgetting to implement the
Value::Arrayfrom interpreter (#880)
This is a change invisible to most users, but removes special casing in our code as all array access works through the Model API now.
- Make our image API more in line with widely used image crates (#885)
u32for pixel positions, just like all the rust crates do.
InvokeCallbackErrorin the interpreter (#886)
More work was done in preparation to renaming the project as well as its crates.
- Add support for font-size to LineEdit and Text-Edit widgets. (#872)
This change was contributed by @besok. Thank you for your work!
Migration guides from version
0.2.0 were added. You can find preliminary versions of these guides here:
These guides describe all the major API incompatible changes and will of course be part of the documentation of version
Changes: afb3f2, 6ce9a6, 2e10b4, 84a62c
Work in progress
- Add compatibility feature to our public crates (#867)
We want to be able to put existing functionality behind a feature flag in future versions while keeping the semver compatibility. This is only possible if that new feature flag is enabled by default, but this is not working if the users have done
default-features = falsein their Cargo.toml. So we add new
compat-x-y-zfeature that is mandatory to have and which is enforced with a
65 patches were committed by 7 authors.