3

1st of August to 8th of August 2021

 2 years ago
source link: https://sixtyfps.io/thisweek/2021-08-09.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

This week in SixtyFPS

1st of August to 8th of August 2021

Posted on August 9, 2021

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

SixtyFPS UI Library

  • New Features
  • Changes to the .60 language
    • Allow parent element to contain constraints and still be able to set the height or width ( d2e2ee )
    • For embedded data, store the extension in the binary ( 1dab4c )

      This is useful for the detection of SVG

  • Documentation
    • A tutorial video was created and referenced in the documentation

      Olivier made a video explaining how to get started with the .60 language and how to embed the UI into C++ and Rust projects.

    • Link to the tutorial and license information in more places

      Changes: 8b4e41, 045356, 511bd6, 8f4caa

    • Building the doc no longer need nightly rust ( 603c5d )

      Rust 1.54 has the feature that allow us to include markdown files in the docs

  • Online editor now lets you pick the widget style ( 23e3c6 )
  • Rust client API
    • Provide sixtyfps::Window by 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
    • Make the new window() accessor in generated C++ code const ( b55931 )
    • Fix const-ness in generated C++ API ( e97ece )

      run(), show() and hide() should not be const, as well as the window() accessor.

    • Provide sixtyfps::Window by reference in the C++ interpreter API ( 9e4b06, 341387 )
  • Fixes
    • Fix regression of two-way binding on default geometry related properties causing binding loop ( 38cf15 )

      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.

      Fixes #385

    • GL backend: Avoid run-time opengl errors with clipped zero width or height rectangles ( 25fac2 )

      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.

      Fixes #377

    • Fix disappearing elements with implicit width/height ( 064c39 )

      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.

      Fixes #376

    • Fix cursor rendering with the Qt backend for non-ascii text ( 35541c )

      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.

      Fixes #363

    • Fix the qt backend always rebuilding ( 58af76 )

      (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 ( fa770e )

      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

  • Janitor work

    Changes: 61af35, ff76aa, 9c1242, 4c7ecc, 04738a, 0d7391, 2606d6, 46edbd, ce976a, c74565, 24a202, 22c657, 60ef09, ce4727, 5cf23f, 3c9451, 04a2df, 57ed13, 89a93d, 601e93

Statistics

80 patches were committed by 4 authors.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK