15th of November 2021 to 21st of November 2021

SixtyFPS UI Library

Our infrastructure on GitHub was a big piece of work this week. We re-organized our GitHub actions. We now separate the "CI" step, run for every commit, with a snapshot step that creates artifact and packages.

We worked on binary C++ packages that do not require the programmers using SixtyFPS to have Rust installed.

This week we also started our work on adding support for micro controllers. This requires shrinking down the overall resource usage, which will benefit all platforms in the long run. The first commit towards MCU support was abb423.

Finally the CMake support on the C++ side saw a lot of polish this week, e.g. in commit 8a3b06.

New Features

  • preprocess the images at compile time ( d1cae7 )

    For the MCU port, we need to process the image to save them in the binary in a convenient format. This patch start this work by trying to analyze what format should an image be using, and saving it as a texture in the binary.

    The current graphical backend and the C++ frontend are not yet supported

  • Compiler: Add a --style option ( c3baef )

    So we will be able to set the style from the command line args in addition to the env variable

Fixes

  • Fix C++ examples not launching out of the box on Windows when using multi-config generator ( 7f61d9 )

    We copy the sixtyfps_cpp.dll into the bin directory where the examples are, but that needs to be a Debug/ or Release/ sub-directory in case of a multi-config generator.

  • Fix native widgets with C++ on windows ( 1bde79 )

    The function that expose the vtable was not exported because the declare_item_vtable expanded to a #[cfg(feature = "ffi")] with the intention to be the ffi feature of the corelib crate. But when this macro is used from the qt backend, the ffi feature was not set

  • Set MSVC to use UTF-8 character sets on c++ source files, so it won't throw error on u"string" when running in other codepage, for example cp936. Ref: https://docs.microsoft.com/en-us/cpp/build/reference/utf-8-set-source-and-executable-character-sets-to-utf-8 ( 54ae34 )

    Thanks to @UnderCooled for the patch!

  • Polish the Native Spinbox: There is a line edit that need to be drawn inside ( 40a6f3 )

Janitor work

  • Start fuzzing the parser of the .60 language

    Some small problems were uncovered by cargo fuzz and were promptly fixed.

    Changes: a488a7, 46f291, bd1d82, 36c7aa

  • Bump version of strum ( 6bf224 )

Applications

cargo-ui

  • On release builds on Windows, don't show the console for debug output ( b8619e )

    Use the windows subsystem instead, we don't strictly need a console.

Statistics

50 patches were committed by 4 authors.

← Next : 22nd of November 2021 to 28th of November 2021 ‒ 0.1.5 Release | Previous : 8th of November 2021 to 14th of November 2021


Slint is a declarative GUI toolkit to build native user interfaces for desktop and embedded applications written in Rust, C++, or JavaScript. Find more information at https://slint.dev/ or check out the source code at https://github.com/slint-ui/slint