This week in SixtyFPS

20th of December 2021 to 2nd of January 2022

Posted on January 3, 2022

SixtyFPS is a toolkit to efficiently develop fluid graphical user interfaces for any display: embedded devices and desktop applications. We support multiple programming languages, such as Rust, C++, and JavaScript. Find more information at https://sixtyfps.io/ or go straight to github at https://github.com/sixtyfpsui/sixtyfps

A happy 2022 to everybody!

This weekly report actually covers the two slow week between christmas and new years:-)

Company

Tobias Hunger (@hunger) joined us as full-time software engineer! 🍾

SixtyFPS UI Library

Features

  • Add a simple frames per second counter to the GL and Qt backend (215cf6)

    It can be activated using the SIXTYFPS_DEBUG_PERFORMANCE environment variable, which takes a comma separated list of options.

    This could be extended in the future with different locations for the overlay (corner_top_left, corner_top_right, etc.) - but this is a simple start.

    cc #728

Documentation

  • Typos: repeating words in documentation, across the repository (12c0ef)

    Thanks to @Vollbrecht

  • Add a debugging techniques page to the C++ and Rust documentation (f08c4d)

    This is listed under the reference ("how to") and explains SIXTYFPS_SLOW_ANIMATIONS, SIXTYFPS_DEBUG_PERFORMANCE as well as SIXTYFPS_SCALE_FACTOR.

  • Polished the Rust crate docs a little bit (eb88e7)

Fixes

  • Process the states before inlining (ec2671)

    So that inlining don't merge the states

    Since we need to apply default property before the states, we also needed to move that. But ensure_window can't be moved before the focus stuff that can't be move before inlining, so set the default property of the Window in the ensure_window pass

    Fixes #752

  • The NativeTab::pressed can be changed from the native code (44cfd4)

    Mark it as such Otherwise the const propagation will see this property as constant and this will panic at runtime

    Fixes #775

  • Process the states before inlining ( ec2671)

    So that inlining don't merge the states

    Since we need to apply default property before the states, we also needed to move that. But ensure_window can't be moved before the focus stuff that can't be move before inlining, so set the default property of the Window in the ensure_window pass

    Fixes #752

  • Fix default_geometry and visibility combination (0b5648)

    Regression since 684a8c

Janitor work

Changes: 1dea1a, cdfac0, eb88e7

Statistics

34 patches were committed by 6 authors in the two weeks covered