Skip to content

Commit

Permalink
Fill out the Xilem and Masonry sections
Browse files Browse the repository at this point in the history
  • Loading branch information
DJMcNab committed Nov 7, 2024
1 parent dfa294c commit e6c2404
Showing 1 changed file with 33 additions and 6 deletions.
39 changes: 33 additions & 6 deletions content/blog/2024-11-04-tmix-10/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ Alongside the work on resvg, we have been continuing work on our existing projec
Xilem is our flagship GUI project, inspired by SwiftUI.
It lets you build user interfaces declaratively by composing lightweight views together, and will diff them to provide minimal updates to a retained layer.

- [xilem#681][]: `View::rebuild` was updated to reflect the ability to use reborrowing.
- [xilem#669][]: The font weight for `label`s was exposed.

<figure>

<!-- <img style="height: auto" src="http_cats.png" alt="A list of HTTP status codes, with 'Select' buttons. HTTP code 418 'I'm a teapot' is selected, with a picture of a kitten hiding in a teapot." height="962" width="600"> -->
Expand All @@ -48,12 +51,25 @@ It lets you build user interfaces declaratively by composing lightweight views t
</figcaption>
</figure>

Work on Xilem Web continues.

## Masonry

Masonry is the widget system used by Xilem.
It provides a non-opinionated retained widget tree, designed as a base layer for high-level GUI frameworks.

<!-- - [xilem#515][]: Removes unimplemented functionality from our text handling code. -->
- [xilem#632][]: Starts a Masonry book, including a guide on creating a To-Do List app.
- [rfcs#7][]: The pass specification RFC has been fully implemented, and the RFC has been merged.
- [xilem#705][]: Moved methods for mutating widgets to free functions.
- This decreases ergonomics in favour of increasing uniformity between Masonry and crates which create their own widgets.
- This change is intended to improve rustdoc output, and the ergonomics should be restored once Rust has Arbitrary Self Types V2.
- [xilem#615][]: Our accessibility for text has been greatly improved, allowing by-character and by-word movement through accessibility tools.
- [xilem#660][]: `request_paint` has been removed in favour of a new `request_render`, so that accessibility updates are less likely to be missed.
- [xilem#718][], [xilem#720][]: restored the ability to embed Masonry in external projects by re-exported required items.
- [xilem#612][]: A built-in feature-gated integration with [Tracy](https://github.com/wolfpld/tracy).

Daniel also provided a talk to [GOSIM China 2024](https://china2024.gosim.org/) about Masonry.
The recording of this presentation is not yet available.

## Vello

Expand All @@ -69,13 +85,24 @@ It handles text layout, mostly at the level of line breaking and resolving glyph

Editor things?

## Druid/Piet
## Piet

Piet is a 2d graphics library which abstracts over platform-native graphics APIs.
During October, we released [Piet 0.7.0](https://github.com/linebender/piet/releases/tag/v0.7.0).

Some key updates from October included in this release are:
- [piet#572][]: Use of `Arc` over `Rc` for stroke dashing, by anesthetice.
- [piet#585][]: An update to the Rust 2018 edition, from Bruce Mitchener.
- [piet#578][]: Improved robustness of `copy_raw_pixels` on Direct2D by Kaur Kuut.

## Druid

We are working towards a final release of Druid.
Druid is a GUI library which was a predecessor to Xilem, and an ancestor of Masonry.

We are also planning on relicensing Druid from its current license of Apache 2.0 only to the Rust ecosystem standard Apache 2.0 OR MIT dual license.
This will greatly improve cross-compatibility will the rest of the ecosystem, allowing two-way movement of code between most Linebender projects.
This will also apply to Xilem, Masonry and the (archived) Glazier.
We are in the process of relicensing Druid from its current license of Apache 2.0 only to the Rust ecosystem standard Apache 2.0 OR MIT dual license.
If you have previously contributed to Druid, please read and respond to [druid#2414][].
This will greatly improve cross-compatibility will the rest of the Rust ecosystem.
We will also apply this to Xilem, Masonry and Glazier (which is currently archived).

## Others

Expand Down

0 comments on commit e6c2404

Please sign in to comment.