This week in SixtyFPS
1st of August to 8th of August 2021
Posted on August 9, 2021
SixtyFPS UI Library
- New Features
- Changes to the
- A tutorial video was created and referenced in the
Olivier made a video explaining how to get started with the
.60language and how to embed the UI into C++ and Rust projects.
- Link to the tutorial and license information in more places
- Building the doc no longer need nightly rust (
Rust 1.54 has the feature that allow us to include markdown files in the docs
- A tutorial video was created and referenced in the documentation
- Online editor now lets you pick the widget style ( 23e3c6 )
- Rust client API
sixtyfps::Windowby reference in the Rust API ( 29f585 )
This also removes Clone from the Window again, to avoid having to face the question: Does cloning a window duplicate it on the screen?
- C++ language bindings
- Fix regression of two-way binding on default geometry related properties causing binding loop (
Commit 064c39 introduced the regression that if a two-way binding was set on a property that we'd also set a default geometry on, we'd end up applying that on the two-way binding, causing a binding loop.
set_binding_if_not_set needs to only set the binding if... there's really none yet.
- GL backend: Avoid run-time opengl errors with clipped zero width or height rectangles (
If a Rectangle has a border-radius and clipping, we use an FBO to render the children and then use femtovg's stencil clipping. If the Rectangle has a zero width or height, we would end up trying to create a texture with such dimensions, which produces run-time opengl errors.
We can detect this situation and avoid it early on. The same might happen for shadows.
- Fix disappearing elements with implicit width/height (
When an element gets its width and height from the parent through an implicit 100% binding, those bindings were missing when an animation was pre-defined.
The provided new-type wrapper offers a function to deal with replacing just binding expression, instead of the expression *and* the animation.
- Fix cursor rendering with the Qt backend for non-ascii text (
We calculate the cursor position as byte offset in the utf-8 encoded string, while Qt expects an index in the utf-16 encoded QString. When those differ, the cursor is rendered at the wrong location.
- Fix the qt backend always rebuilding (
(because of one of the previous changes which renamed the file)
- Fix panic when one of the two branch of a condition is Type::Void (
Throw a proper compilation error. Note that there may be a bit too many error now when the two branch of a condition are not the same, but it's better than a panic
- Fix regression of two-way binding on default geometry related properties causing binding loop ( 38cf15 )
- Janitor work
80 patches were committed by 4 authors.