From 2db08af0a40fbaa5469e0449742ff894a607e210 Mon Sep 17 00:00:00 2001 From: Bruce Mitchener Date: Tue, 3 Dec 2024 20:43:53 +0700 Subject: [PATCH 01/18] This month in Linebender, November 2024 edition! --- content/blog/2024-12-03-tmil-11/index.md | 146 +++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 content/blog/2024-12-03-tmil-11/index.md diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md new file mode 100644 index 0000000..f18ad72 --- /dev/null +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -0,0 +1,146 @@ ++++ +title = "Linebender in November 2024: color!" +authors = ["Bruce Mitchener", "Daniel McNab"] ++++ + +Linebender is an informal open-source organization working on various projects to advance the state of the art in GUI for [the Rust programming language](https://rust-lang.org). + +This month's update contains some surprises, even to us! + +## Color + +When we published the update for [October, 2024](/blog/tmix-10/), we had already been discussing starting a new color-focused crate, but hadn't yet created a repository. + +We may have a dedicated blog post about the Color crate in the future and laying out some of the motivations, but we'll go over it a bit here. + +Linebender, among other things, believes in helping build solid foundations for people building user interfaces and working in graphics, in the Rust programming language (and on GPUs). +Upon seeing a problem, we would rather produce a focused crate that solves that problem and that can be used by others within the Rust ecosystem. +Color is one such area. +It is much harder than it may appear at first, with many complicating factors like what should be done by a basic color struct, what color spaces to support, and whether or not to support color formats used in print (like CMYK). + +We looked around at a wide variety of crates in various stages of maintenance and development, their feature sets, the "weight" of those crates, and how closely they fit in with what we would need in Vello, tiny-skia, resvg, svgtypes, Masonry, and Xilem. +We decided to do a crate based on the [CSS Color Module Level 4] draft specification, with support for a limited number of additional color spaces. + +We drew a line in the sand and released a preview of our crate as [color 0.1.0][] on November 21, 2024. +The documentation lays out more of the scope, goals, and main types provided by the crate. + +Since then, we have begun the work of making Peniko and Vello use the Color crate and improving it to support that usage. +Early next year, we will use it within svgtypes, resvg, and tiny-skia. + +We will be releasing a 0.2.0 release within the next month and encourage people to give it a try. +The 0.2.0 release will include some additional (non-CSS 4) color spaces like ACEScg, OkHsl, and OkHsv as well as things that we found useful when using it in Peniko and Vello. + +Many thanks to [Brendan Zabarauskas][] for working with us to transfer his `color` crate name for our use. +His original crate was published as 0.0.1 on November 21, 2014, motivating us ten years later to ship our 0.1.0 on November 21, 2024. + +We're very excited about the future of this crate and look forward to talking to other people within the Rust ecosystem about using it. + +## Kurbo + +Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. + +Internally, we're talking about the future direction of Kurbo and how we can improve upon it as a foundational crate for curves, shapes, and math. +Hopefully we'll be writing about that in more detail within the next couple of months. + +## Peniko + +Peniko will have a big release within the next month, once the new release of Color is out, that will remove the old `peniko::Color` type and replace it with the new create. +This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. + +We have long had a pain point with Peniko where it defines some resource management types, `Blob`, `Font`, and `WeakBlob`. +These are used within Parley and Vello as well as by anyone using those crates. +We plan to move these into a separate crate to ease versioning issues and to take advantage of this to improve the functionality. +This will probably be coming in the next big release following the one adding Color. + +## Vello + +Vello too will have a big release within the next month, building upon the new releases of Peniko and Color. + +Additionally: + +* [vello#735][], [vello#743][]: Update to wgpu 23.0.1, matching what is used by Bevy 0.15. +* [vello#722][]: Improving image sampling. +* [vello#740][]: Correcting support for PNG glyphs in fonts, important for emoji on macOS. + + +## Parley + +***SOMEONE ELSE WRITE THIS*** + +## Masonry + +***SOMEONE ELSE WRITE THIS*** + +## Xilem + +***SOMEONE ELSE WRITE THIS*** + +## Piet + +While we aren't yet planning on a new release of Piet as there have been no changes since last month, we did begin a discussion about a possible major revision to Piet and what a next-generation Piet might look like. + +Something great about Piet was the idea that with a single rendering API, you could target multiple back-ends, mostly ones that were platform specific, but also SVG. +With the advent of Vello, this was left behind, with a focus on making Vello work. +Also, many things that used to be part of Piet are now separate crates, like Peniko, Parley, and Color. +These new crates exceed the capabilities that were present in Piet. + +Nico Burns started a discussion about this that took off in our Zulip, [Low-level Piet]. +We look forward to continuing to discuss this topic over the coming months. + +## tiny-skia, resvg, simplecss, svgtypes + +In the last month, we have made progress on converting the simplecss and svgtypes crates over to using the Linebender CI infrastructure. +Work will continue on the tiny-skia and resvg repositories. + +The re-licensing of the crates within the resvg repository has been completed and these are now under the "Apache-2.0 OR MIT" license pair. + +Additionally, a couple of exciting improvements have landed in the resvg repository: + +* [resvg#843][]: Add support for the `!important` attribute. +* [resvg#850][]: Add support for embedded luma JPEG images. + +We haven't yet set a timeline for doing the next release of the resvg family of crates as it will be the first that we have done after assuming stewardship of these crates. + +## Velato, Vello SVG + +[velato 0.4.0][] was released, updating it to use Vello 0.3. Additionally, 0.3.1 was released which correctly implemented non-linear easing. + +[vello_svg 0.5.0][] was released, updating it to use usvg 0.44. + +## Research and Future Directions + +Linebender has an origin story in being a very research oriented group, looking to break new ground. +While we are focused on shipping code today, we still have an eye on the future and how to be prepared for the new opportunities and technologies that are coming. +This can be seen in our thinking about the future of Piet as previously discussed as well as the work that we're doing with Color. + +We have a couple of active and ongoing research projects: + +* Raph Levien on new rendering approaches for Vello. +* Joe Neeman on boolean path operations. +* ***IS THERE ANYTHING ELSE TO MENTION HERE?*** + +This last month also saw the transition of the Slang shader language from Nvidia to Khronos. +We don't have any immediate plans to adopt Slang in Vello (we're already pretty busy!), but we are looking at Slang and thinking about how we can best make use of it to improve the usefulness of our crates. +We'd love to [talk][] to people who are adopting Slang within the Rust ecosystem or interested in publishing Slang code for wider use. + +## Get Involved! + +We welcome collaboration on any of our crates. +This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code. + +[CSS Color Module Level 4]: https://www.w3.org/TR/css-color-4/ +[Low-level Piet]: https://xi.zulipchat.com/#narrow/channel/197075-gpu/topic/Low-level.20Piet +[talk]: https://xi.zulipchat.com/#narrow/channel/197075-gpu + +[color 0.1.0]: https://docs.rs/color/0.1.0/color/ + +[resvg#843]: https://github.com/linebender/resvg/pull/843 +[resvg#850]: https://github.com/linebender/resvg/pull/850 + +[vello#722]: https://github.com/linebender/vello/pull/722 +[vello#735]: https://github.com/linebender/vello/pull/735 +[vello#740]: https://github.com/linebender/vello/pull/740 +[vello#743]: https://github.com/linebender/vello/pull/743 + +[velato 0.4.0]: https://github.com/linebender/velato/releases/tag/v0.4.0 +[vello_svg 0.5.0]: https://github.com/linebender/vello_svg/releases/tag/v0.5.0 From 0941a53303cc82138e6191884aa6ca0cc2f90c40 Mon Sep 17 00:00:00 2001 From: Bruce Mitchener Date: Tue, 3 Dec 2024 22:55:29 +0700 Subject: [PATCH 02/18] Add Kurbo changes, office hours, review suggestion --- content/blog/2024-12-03-tmil-11/index.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index f18ad72..5822293 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -14,7 +14,7 @@ When we published the update for [October, 2024](/blog/tmix-10/), we had already We may have a dedicated blog post about the Color crate in the future and laying out some of the motivations, but we'll go over it a bit here. Linebender, among other things, believes in helping build solid foundations for people building user interfaces and working in graphics, in the Rust programming language (and on GPUs). -Upon seeing a problem, we would rather produce a focused crate that solves that problem and that can be used by others within the Rust ecosystem. +Upon seeing a problem, we prefer to produce a focused crate that solves that problem and that can be used by others within the Rust ecosystem. Color is one such area. It is much harder than it may appear at first, with many complicating factors like what should be done by a basic color struct, what color spaces to support, and whether or not to support color formats used in print (like CMYK). @@ -39,6 +39,9 @@ We're very excited about the future of this crate and look forward to talking to Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. +* [kurbo#390][] Reduce number of operations in `Triangle::circumscribed_circle`. +* [kurbo#399][] Implement `Sum` for `Vec2`. + Internally, we're talking about the future direction of Kurbo and how we can improve upon it as a foundational crate for curves, shapes, and math. Hopefully we'll be writing about that in more detail within the next couple of months. @@ -128,12 +131,21 @@ We'd love to [talk][] to people who are adopting Slang within the Rust ecosystem We welcome collaboration on any of our crates. This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code. +We host an hour long office hours meeting each week where we discuss what's going on in our projects. See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-office-hours) for details. + +- Daniel and Olivier's "office hours" appointments can still be booked by anyone for open-ended discussion of the ecosystem. + - [See Daniel's schedule here](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ32eQYJ9DtZ_wJaYNtT36YioETiloZDIdImFpBFRo5-XsqGzpikgkg47LPsiHhpiwiQ1orOwwW2). + - [See Olivier's schedule here](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ2t767ZRETD_TkRI_VxK2ZTG0VrO9OZ4l7HvTxefhtJcg85iK0ZN7zWNnAEZtH0Dn7C1GKxrmYM). + [CSS Color Module Level 4]: https://www.w3.org/TR/css-color-4/ [Low-level Piet]: https://xi.zulipchat.com/#narrow/channel/197075-gpu/topic/Low-level.20Piet [talk]: https://xi.zulipchat.com/#narrow/channel/197075-gpu [color 0.1.0]: https://docs.rs/color/0.1.0/color/ +[kurbo#390]: https://github.com/linebender/kurbo/pull/390 +[kurbo#399]: https://github.com/linebender/kurbo/pull/399 + [resvg#843]: https://github.com/linebender/resvg/pull/843 [resvg#850]: https://github.com/linebender/resvg/pull/850 From bc64f5898f86782d4934d08f1865d06fa3c175f3 Mon Sep 17 00:00:00 2001 From: Bruce Mitchener Date: Fri, 6 Dec 2024 00:23:06 +0700 Subject: [PATCH 03/18] Apply suggestions from code review Co-authored-by: Kaur Kuut Co-authored-by: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> --- content/blog/2024-12-03-tmil-11/index.md | 53 ++++++++++-------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 5822293..e582053 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -11,23 +11,23 @@ This month's update contains some surprises, even to us! When we published the update for [October, 2024](/blog/tmix-10/), we had already been discussing starting a new color-focused crate, but hadn't yet created a repository. -We may have a dedicated blog post about the Color crate in the future and laying out some of the motivations, but we'll go over it a bit here. +We may have a dedicated blog post about the `color` crate in the future and laying out some of the motivations, but we'll go over it a bit here. Linebender, among other things, believes in helping build solid foundations for people building user interfaces and working in graphics, in the Rust programming language (and on GPUs). Upon seeing a problem, we prefer to produce a focused crate that solves that problem and that can be used by others within the Rust ecosystem. Color is one such area. It is much harder than it may appear at first, with many complicating factors like what should be done by a basic color struct, what color spaces to support, and whether or not to support color formats used in print (like CMYK). -We looked around at a wide variety of crates in various stages of maintenance and development, their feature sets, the "weight" of those crates, and how closely they fit in with what we would need in Vello, tiny-skia, resvg, svgtypes, Masonry, and Xilem. +We looked around at a wide variety of crates in various stages of maintenance and development, their feature sets, the "weight" of those crates, and how closely they fit in with what we would need in Vello, Tiny Skia, Resvg, SVG Types, Masonry, and Xilem. We decided to do a crate based on the [CSS Color Module Level 4] draft specification, with support for a limited number of additional color spaces. -We drew a line in the sand and released a preview of our crate as [color 0.1.0][] on November 21, 2024. +We released an alpha of this new crate as [Color 0.1.0][] on November 21, 2024. The documentation lays out more of the scope, goals, and main types provided by the crate. Since then, we have begun the work of making Peniko and Vello use the Color crate and improving it to support that usage. -Early next year, we will use it within svgtypes, resvg, and tiny-skia. +Early next year, we hope to use it within SVG Types, Resvg, and Tiny Skia. -We will be releasing a 0.2.0 release within the next month and encourage people to give it a try. +We will be publishing a 0.2.0 release within the next month and encourage people to give it a try. The 0.2.0 release will include some additional (non-CSS 4) color spaces like ACEScg, OkHsl, and OkHsv as well as things that we found useful when using it in Peniko and Vello. Many thanks to [Brendan Zabarauskas][] for working with us to transfer his `color` crate name for our use. @@ -42,24 +42,14 @@ Kurbo has seen some minor updates within the last month and we're planning to pu * [kurbo#390][] Reduce number of operations in `Triangle::circumscribed_circle`. * [kurbo#399][] Implement `Sum` for `Vec2`. -Internally, we're talking about the future direction of Kurbo and how we can improve upon it as a foundational crate for curves, shapes, and math. -Hopefully we'll be writing about that in more detail within the next couple of months. - ## Peniko -Peniko will have a big release within the next month, once the new release of Color is out, that will remove the old `peniko::Color` type and replace it with the new create. +We've been working towards a big release, which will remove the old `peniko::Color` type and use the new `color` crate instead. This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. -We have long had a pain point with Peniko where it defines some resource management types, `Blob`, `Font`, and `WeakBlob`. -These are used within Parley and Vello as well as by anyone using those crates. -We plan to move these into a separate crate to ease versioning issues and to take advantage of this to improve the functionality. -This will probably be coming in the next big release following the one adding Color. - ## Vello -Vello too will have a big release within the next month, building upon the new releases of Peniko and Color. - -Additionally: +Vello was updated to `wgpu` v23. * [vello#735][], [vello#743][]: Update to wgpu 23.0.1, matching what is used by Bevy 0.15. * [vello#722][]: Improving image sampling. @@ -80,7 +70,7 @@ Additionally: ## Piet -While we aren't yet planning on a new release of Piet as there have been no changes since last month, we did begin a discussion about a possible major revision to Piet and what a next-generation Piet might look like. +While there were no code changes, we did begin a discussion about a possible major revision to Piet and what a next-generation Piet might look like. Something great about Piet was the idea that with a single rendering API, you could target multiple back-ends, mostly ones that were platform specific, but also SVG. With the advent of Vello, this was left behind, with a focus on making Vello work. @@ -90,25 +80,23 @@ These new crates exceed the capabilities that were present in Piet. Nico Burns started a discussion about this that took off in our Zulip, [Low-level Piet]. We look forward to continuing to discuss this topic over the coming months. -## tiny-skia, resvg, simplecss, svgtypes +## Tiny Skia, Resvg, SimpleCSS, SVG Types -In the last month, we have made progress on converting the simplecss and svgtypes crates over to using the Linebender CI infrastructure. -Work will continue on the tiny-skia and resvg repositories. +In the last month, we have made progress on converting the SimpleCSS and SVG Types projects over to using the Linebender CI infrastructure. -The re-licensing of the crates within the resvg repository has been completed and these are now under the "Apache-2.0 OR MIT" license pair. +The re-licensing of the code within the Resvg repository has been completed and is now under the "Apache-2.0 OR MIT" license pair. -Additionally, a couple of exciting improvements have landed in the resvg repository: +Additionally, a couple of exciting improvements have landed in the Resvg repository: * [resvg#843][]: Add support for the `!important` attribute. * [resvg#850][]: Add support for embedded luma JPEG images. -We haven't yet set a timeline for doing the next release of the resvg family of crates as it will be the first that we have done after assuming stewardship of these crates. - ## Velato, Vello SVG -[velato 0.4.0][] was released, updating it to use Vello 0.3. Additionally, 0.3.1 was released which correctly implemented non-linear easing. +[Velato 0.4.0][] was released, updating it to use Vello 0.3. +Additionally, 0.3.1 was released which correctly implemented non-linear easing. -[vello_svg 0.5.0][] was released, updating it to use usvg 0.44. +[Vello SVG 0.5.0][] was released, updating it to use `usvg` 0.44. ## Research and Future Directions @@ -122,7 +110,7 @@ We have a couple of active and ongoing research projects: * Joe Neeman on boolean path operations. * ***IS THERE ANYTHING ELSE TO MENTION HERE?*** -This last month also saw the transition of the Slang shader language from Nvidia to Khronos. +November also saw the transition of the Slang shader language from Nvidia to Khronos. We don't have any immediate plans to adopt Slang in Vello (we're already pretty busy!), but we are looking at Slang and thinking about how we can best make use of it to improve the usefulness of our crates. We'd love to [talk][] to people who are adopting Slang within the Rust ecosystem or interested in publishing Slang code for wider use. @@ -131,7 +119,8 @@ We'd love to [talk][] to people who are adopting Slang within the Rust ecosystem We welcome collaboration on any of our crates. This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code. -We host an hour long office hours meeting each week where we discuss what's going on in our projects. See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-office-hours) for details. +We host an hour long office hours meeting each week where we discuss what's going on in our projects. +See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-office-hours) for details. - Daniel and Olivier's "office hours" appointments can still be booked by anyone for open-ended discussion of the ecosystem. - [See Daniel's schedule here](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ32eQYJ9DtZ_wJaYNtT36YioETiloZDIdImFpBFRo5-XsqGzpikgkg47LPsiHhpiwiQ1orOwwW2). @@ -141,7 +130,7 @@ We host an hour long office hours meeting each week where we discuss what's goin [Low-level Piet]: https://xi.zulipchat.com/#narrow/channel/197075-gpu/topic/Low-level.20Piet [talk]: https://xi.zulipchat.com/#narrow/channel/197075-gpu -[color 0.1.0]: https://docs.rs/color/0.1.0/color/ +[Color 0.1.0]: https://docs.rs/color/0.1.0/color/ [kurbo#390]: https://github.com/linebender/kurbo/pull/390 [kurbo#399]: https://github.com/linebender/kurbo/pull/399 @@ -154,5 +143,5 @@ We host an hour long office hours meeting each week where we discuss what's goin [vello#740]: https://github.com/linebender/vello/pull/740 [vello#743]: https://github.com/linebender/vello/pull/743 -[velato 0.4.0]: https://github.com/linebender/velato/releases/tag/v0.4.0 -[vello_svg 0.5.0]: https://github.com/linebender/vello_svg/releases/tag/v0.5.0 +[Velato 0.4.0]: https://github.com/linebender/velato/releases/tag/v0.4.0 +[Vello SVG 0.5.0]: https://github.com/linebender/vello_svg/releases/tag/v0.5.0 From b43833bcacb11a94561213caa8b396965452590e Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:49:59 +0000 Subject: [PATCH 04/18] Add Parley section --- content/blog/2024-12-03-tmil-11/index.md | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index e582053..714d8b8 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -58,7 +58,18 @@ Vello was updated to `wgpu` v23. ## Parley -***SOMEONE ELSE WRITE THIS*** +Parley is a text layout library. It handles text layout, mostly at the level of line breaking and resolving glyph positions. +In November, the main updates were: + +* [parley#158][], [parley#160][]: Worked towards `no_std`. Full `no_std` is currently blocked (only) on the release of a dependency. +* [parley#154][]: `PlainEditor` was significantly refactored to have a more ergonomic and efficient API. +* [parley#166][]: AccessKit support was integrated directly into Parley. This was previous possible externally, but the external integration is much simpler. +* [parley#152][]: Cursor blinking was added to the editor example by [tannal](https://github.com/tannal). +* [parley#182][]: Font fallback on misconfigured Linux systems was resolved by Richard Hozák. +* [parley#173][]: Ada Böhm added snapshot testing, which will significantly improve our confidence in future changes. +* [parley#170][]: Significantly simplified the cursor model, which resolved several longstanding issues in text editing. + +Kaur also made several improvements to our CI, in [parley#156][], [parley#171][] and [parley#184][]. ## Masonry From 39c7d77407fc1bb4ecd29871f6602f95db6525bc Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Mon, 16 Dec 2024 17:58:16 +0000 Subject: [PATCH 05/18] Add suggestions for screenshots --- content/blog/2024-12-03-tmil-11/index.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 714d8b8..e686d79 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -35,6 +35,8 @@ His original crate was published as 0.0.1 on November 21, 2014, motivating us te We're very excited about the future of this crate and look forward to talking to other people within the Rust ecosystem about using it. + + ## Kurbo Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. @@ -55,6 +57,7 @@ Vello was updated to `wgpu` v23. * [vello#722][]: Improving image sampling. * [vello#740][]: Correcting support for PNG glyphs in fonts, important for emoji on macOS. + ## Parley From 48df308b2f00acee90415240e1a8912b389b14aa Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:02:31 +0000 Subject: [PATCH 06/18] Add Masonry section --- content/blog/2024-12-03-tmil-11/index.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index e686d79..3582206 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -76,7 +76,14 @@ Kaur also made several improvements to our CI, in [parley#156][], [parley#171][] ## Masonry -***SOMEONE ELSE WRITE THIS*** +* [xilem#670][]: Added some features needed for custom client side decorations, by Marco Melorio. +* [xilem#735][]: Viktor Strate Kløvedal found and resolved several features which incorrectly private. +* [xilem#736][]: Added a padding property to `SizedBox`. This PR also exposed this property to Xilem. +* [xilem#754][], [xilem#755][], [xilem#762][]: Refactored Masonry's text support to reduce internal duplication and validate previously mentioned changes in Parley. + +Daniel's talk *Masonry: An Imperative Widget toolkit in Rust* for GOSIM China 2024, was also published [on YouTube](https://youtu.be/99zU4bU4kP8). + + ## Xilem From f6a577f8fe7381a127d7a6fa3af0fba4f42a0873 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Mon, 16 Dec 2024 18:15:02 +0000 Subject: [PATCH 07/18] Add Xilem section --- content/blog/2024-12-03-tmil-11/index.md | 26 +++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 3582206..0476baa 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -35,7 +35,7 @@ His original crate was published as 0.0.1 on November 21, 2014, motivating us te We're very excited about the future of this crate and look forward to talking to other people within the Rust ecosystem about using it. - + ## Kurbo @@ -57,7 +57,7 @@ Vello was updated to `wgpu` v23. * [vello#722][]: Improving image sampling. * [vello#740][]: Correcting support for PNG glyphs in fonts, important for emoji on macOS. - + ## Parley @@ -87,7 +87,19 @@ Daniel's talk *Masonry: An Imperative Widget toolkit in Rust* for GOSIM China 20 ## Xilem -***SOMEONE ELSE WRITE THIS*** +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. + +The majority of changes in November have already been reflected in the Masonry section. +This month only had small updates otherwise: + +* [xilem#742][]: Made all built-in `View` types `#[must_use]`. +* [xilem#732][]: Implemented `View` for `Rc`. + +Work on Xilem web has been continuing well: + +* [xilem#731][], [xilem#734][]: `svgdraw` . +* [xilem#749][]: Experimentally increased support for custom view context types. ## Piet @@ -135,7 +147,7 @@ November also saw the transition of the Slang shader language from Nvidia to Khr We don't have any immediate plans to adopt Slang in Vello (we're already pretty busy!), but we are looking at Slang and thinking about how we can best make use of it to improve the usefulness of our crates. We'd love to [talk][] to people who are adopting Slang within the Rust ecosystem or interested in publishing Slang code for wider use. -## Get Involved! +## Get Involved We welcome collaboration on any of our crates. This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code. @@ -143,9 +155,9 @@ This can include improving the documentation, implementing new features, improvi We host an hour long office hours meeting each week where we discuss what's going on in our projects. See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-office-hours) for details. -- Daniel and Olivier's "office hours" appointments can still be booked by anyone for open-ended discussion of the ecosystem. - - [See Daniel's schedule here](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ32eQYJ9DtZ_wJaYNtT36YioETiloZDIdImFpBFRo5-XsqGzpikgkg47LPsiHhpiwiQ1orOwwW2). - - [See Olivier's schedule here](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ2t767ZRETD_TkRI_VxK2ZTG0VrO9OZ4l7HvTxefhtJcg85iK0ZN7zWNnAEZtH0Dn7C1GKxrmYM). +* Daniel and Olivier's "office hours" appointments can still be booked by anyone for open-ended discussion of the ecosystem. + * [See Daniel's schedule here](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ32eQYJ9DtZ_wJaYNtT36YioETiloZDIdImFpBFRo5-XsqGzpikgkg47LPsiHhpiwiQ1orOwwW2). + * [See Olivier's schedule here](https://calendar.google.com/calendar/u/0/appointments/schedules/AcZssZ2t767ZRETD_TkRI_VxK2ZTG0VrO9OZ4l7HvTxefhtJcg85iK0ZN7zWNnAEZtH0Dn7C1GKxrmYM). [CSS Color Module Level 4]: https://www.w3.org/TR/css-color-4/ [Low-level Piet]: https://xi.zulipchat.com/#narrow/channel/197075-gpu/topic/Low-level.20Piet From 011bc908165f7bafb04ed3232ecdf913f33511c1 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:13:30 +0000 Subject: [PATCH 08/18] Add Color generated gradients --- content/blog/2024-12-03-tmil-11/index.md | 32 ++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 0476baa..2be050f 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -24,6 +24,36 @@ We decided to do a crate based on the [CSS Color Module Level 4] draft specifica We released an alpha of this new crate as [Color 0.1.0][] on November 21, 2024. The documentation lays out more of the scope, goals, and main types provided by the crate. + + +
+ +
+ +
+ +Color can convert gradients between color spaces. +This is a gradient from "lime" to "blue" in the Oklab color space, converted to sRGB by Color. + +
+
+ +
+ +
+ +
+ +This is a gradient from "lime" to "blue" in Oklab, as generated by your browser. +This is the reference for the above gradient, and should appear identical. + +
+
+ Since then, we have begun the work of making Peniko and Vello use the Color crate and improving it to support that usage. Early next year, we hope to use it within SVG Types, Resvg, and Tiny Skia. @@ -35,8 +65,6 @@ His original crate was published as 0.0.1 on November 21, 2014, motivating us te We're very excited about the future of this crate and look forward to talking to other people within the Rust ecosystem about using it. - - ## Kurbo Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. From 8ddb76a5d2aaf4ee1f912d328bea07f6f70ddf61 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:20:39 +0000 Subject: [PATCH 09/18] Add some missing blurbs --- content/blog/2024-12-03-tmil-11/index.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 2be050f..4362bba 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -60,7 +60,7 @@ Early next year, we hope to use it within SVG Types, Resvg, and Tiny Skia. We will be publishing a 0.2.0 release within the next month and encourage people to give it a try. The 0.2.0 release will include some additional (non-CSS 4) color spaces like ACEScg, OkHsl, and OkHsv as well as things that we found useful when using it in Peniko and Vello. -Many thanks to [Brendan Zabarauskas][] for working with us to transfer his `color` crate name for our use. +Many thanks to [Brendan Zabarauskas][brendanzab] for working with us to transfer his `color` crate name for our use. His original crate was published as 0.0.1 on November 21, 2014, motivating us ten years later to ship our 0.1.0 on November 21, 2024. We're very excited about the future of this crate and look forward to talking to other people within the Rust ecosystem about using it. @@ -79,14 +79,13 @@ This release will be the start of a path towards wider color gamut support throu ## Vello -Vello was updated to `wgpu` v23. +Vello is our GPU vector renderer. +It can draw large 2D scenes with high performance, using GPU compute shaders for most of the work. * [vello#735][], [vello#743][]: Update to wgpu 23.0.1, matching what is used by Bevy 0.15. * [vello#722][]: Improving image sampling. * [vello#740][]: Correcting support for PNG glyphs in fonts, important for emoji on macOS. - - ## Parley Parley is a text layout library. It handles text layout, mostly at the level of line breaking and resolving glyph positions. @@ -104,6 +103,9 @@ Kaur also made several improvements to our CI, in [parley#156][], [parley#171][] ## 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#670][]: Added some features needed for custom client side decorations, by Marco Melorio. * [xilem#735][]: Viktor Strate Kløvedal found and resolved several features which incorrectly private. * [xilem#736][]: Added a padding property to `SizedBox`. This PR also exposed this property to Xilem. @@ -190,8 +192,7 @@ See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-off [CSS Color Module Level 4]: https://www.w3.org/TR/css-color-4/ [Low-level Piet]: https://xi.zulipchat.com/#narrow/channel/197075-gpu/topic/Low-level.20Piet [talk]: https://xi.zulipchat.com/#narrow/channel/197075-gpu - -[Color 0.1.0]: https://docs.rs/color/0.1.0/color/ +[brendanzab]: https://github.com/brendanzab [kurbo#390]: https://github.com/linebender/kurbo/pull/390 [kurbo#399]: https://github.com/linebender/kurbo/pull/399 @@ -204,5 +205,6 @@ See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-off [vello#740]: https://github.com/linebender/vello/pull/740 [vello#743]: https://github.com/linebender/vello/pull/743 +[Color 0.1.0]: https://docs.rs/color/0.1.0/color/ [Velato 0.4.0]: https://github.com/linebender/velato/releases/tag/v0.4.0 [Vello SVG 0.5.0]: https://github.com/linebender/vello_svg/releases/tag/v0.5.0 From 01c0db66a73a80180c1ad0c9fe8132178cb906e1 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:23:38 +0000 Subject: [PATCH 10/18] Re-arrange sections --- content/blog/2024-12-03-tmil-11/index.md | 65 +++++++++++++----------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 4362bba..62e904f 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -65,17 +65,37 @@ His original crate was published as 0.0.1 on November 21, 2014, motivating us te We're very excited about the future of this crate and look forward to talking to other people within the Rust ecosystem about using it. -## Kurbo -Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. +## Xilem -* [kurbo#390][] Reduce number of operations in `Triangle::circumscribed_circle`. -* [kurbo#399][] Implement `Sum` for `Vec2`. +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. -## Peniko +The majority of changes in November were made in the [widget layer](#masonry), which has its own section. +This month only had small updates otherwise: -We've been working towards a big release, which will remove the old `peniko::Color` type and use the new `color` crate instead. -This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. +* [xilem#742][]: Made all built-in `View` types `#[must_use]`, improving error reporting in cases where views could be silently ignored. +* [xilem#732][]: Implemented `View` for `Rc`. + +Work on Xilem web has been continuing well: + +* [xilem#731][], [xilem#734][]: Added a example using our SVG support for drawing, called `svgdraw`. +* [xilem#749][]: Experimentally increased support for custom view context types. + + +## 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#670][]: Added some features needed for custom client side decorations, by Marco Melorio. +* [xilem#735][]: Viktor Strate Kløvedal found and resolved several features which incorrectly private. +* [xilem#736][]: Added a padding property to `SizedBox`. This PR also exposed this property to Xilem. +* [xilem#754][], [xilem#755][], [xilem#762][]: Refactored Masonry's text support to reduce internal duplication and validate previously mentioned changes in Parley. + +Daniel's talk *Masonry: An Imperative Widget toolkit in Rust* for GOSIM China 2024, was also published [on YouTube](https://youtu.be/99zU4bU4kP8). + + ## Vello @@ -101,35 +121,18 @@ In November, the main updates were: Kaur also made several improvements to our CI, in [parley#156][], [parley#171][] and [parley#184][]. -## 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#670][]: Added some features needed for custom client side decorations, by Marco Melorio. -* [xilem#735][]: Viktor Strate Kløvedal found and resolved several features which incorrectly private. -* [xilem#736][]: Added a padding property to `SizedBox`. This PR also exposed this property to Xilem. -* [xilem#754][], [xilem#755][], [xilem#762][]: Refactored Masonry's text support to reduce internal duplication and validate previously mentioned changes in Parley. - -Daniel's talk *Masonry: An Imperative Widget toolkit in Rust* for GOSIM China 2024, was also published [on YouTube](https://youtu.be/99zU4bU4kP8). - - - -## Xilem +## Kurbo -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. +Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. -The majority of changes in November have already been reflected in the Masonry section. -This month only had small updates otherwise: +* [kurbo#390][] Reduce number of operations in `Triangle::circumscribed_circle`. +* [kurbo#399][] Implement `Sum` for `Vec2`. -* [xilem#742][]: Made all built-in `View` types `#[must_use]`. -* [xilem#732][]: Implemented `View` for `Rc`. +## Peniko -Work on Xilem web has been continuing well: +We've been working towards a big release, which will remove the old `peniko::Color` type and use the new `color` crate instead. +This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. -* [xilem#731][], [xilem#734][]: `svgdraw` . -* [xilem#749][]: Experimentally increased support for custom view context types. ## Piet From c6cff92ed90cd82b63d2d6cb00c55adf4dfcf3e6 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:24:07 +0000 Subject: [PATCH 11/18] Remove very low information sections (Kurbo and Peniko) --- content/blog/2024-12-03-tmil-11/index.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 62e904f..8415830 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -121,19 +121,6 @@ In November, the main updates were: Kaur also made several improvements to our CI, in [parley#156][], [parley#171][] and [parley#184][]. -## Kurbo - -Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. - -* [kurbo#390][] Reduce number of operations in `Triangle::circumscribed_circle`. -* [kurbo#399][] Implement `Sum` for `Vec2`. - -## Peniko - -We've been working towards a big release, which will remove the old `peniko::Color` type and use the new `color` crate instead. -This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. - - ## Piet While there were no code changes, we did begin a discussion about a possible major revision to Piet and what a next-generation Piet might look like. From 4ea891bbde89133a6c3484aa17263ab89d2f7b9b Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 11:26:52 +0000 Subject: [PATCH 12/18] Add missing links --- content/blog/2024-12-03-tmil-11/index.md | 29 ++++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 8415830..368b8c8 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -65,7 +65,6 @@ His original crate was published as 0.0.1 on November 21, 2014, motivating us te We're very excited about the future of this crate and look forward to talking to other people within the Rust ecosystem about using it. - ## Xilem Xilem is our flagship GUI project, inspired by SwiftUI. @@ -82,7 +81,6 @@ Work on Xilem web has been continuing well: * [xilem#731][], [xilem#734][]: Added a example using our SVG support for drawing, called `svgdraw`. * [xilem#749][]: Experimentally increased support for custom view context types. - ## Masonry Masonry is the widget system used by Xilem. @@ -161,7 +159,6 @@ We have a couple of active and ongoing research projects: * Raph Levien on new rendering approaches for Vello. * Joe Neeman on boolean path operations. -* ***IS THERE ANYTHING ELSE TO MENTION HERE?*** November also saw the transition of the Slang shader language from Nvidia to Khronos. We don't have any immediate plans to adopt Slang in Vello (we're already pretty busy!), but we are looking at Slang and thinking about how we can best make use of it to improve the usefulness of our crates. @@ -184,16 +181,34 @@ See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-off [talk]: https://xi.zulipchat.com/#narrow/channel/197075-gpu [brendanzab]: https://github.com/brendanzab -[kurbo#390]: https://github.com/linebender/kurbo/pull/390 -[kurbo#399]: https://github.com/linebender/kurbo/pull/399 - +[parley#152]: https://github.com/linebender/parley/pull/743 +[parley#154]: https://github.com/linebender/parley/pull/743 +[parley#156]: https://github.com/linebender/parley/pull/743 +[parley#158]: https://github.com/linebender/parley/pull/743 +[parley#160]: https://github.com/linebender/parley/pull/743 +[parley#166]: https://github.com/linebender/parley/pull/743 +[parley#170]: https://github.com/linebender/parley/pull/743 +[parley#171]: https://github.com/linebender/parley/pull/743 +[parley#173]: https://github.com/linebender/parley/pull/743 +[parley#182]: https://github.com/linebender/parley/pull/743 +[parley#184]: https://github.com/linebender/parley/pull/743 [resvg#843]: https://github.com/linebender/resvg/pull/843 [resvg#850]: https://github.com/linebender/resvg/pull/850 - [vello#722]: https://github.com/linebender/vello/pull/722 [vello#735]: https://github.com/linebender/vello/pull/735 [vello#740]: https://github.com/linebender/vello/pull/740 [vello#743]: https://github.com/linebender/vello/pull/743 +[xilem#670]: https://github.com/linebender/xilem/pull/743 +[xilem#731]: https://github.com/linebender/xilem/pull/743 +[xilem#732]: https://github.com/linebender/xilem/pull/743 +[xilem#734]: https://github.com/linebender/xilem/pull/743 +[xilem#735]: https://github.com/linebender/xilem/pull/743 +[xilem#736]: https://github.com/linebender/xilem/pull/743 +[xilem#742]: https://github.com/linebender/xilem/pull/743 +[xilem#749]: https://github.com/linebender/xilem/pull/743 +[xilem#754]: https://github.com/linebender/xilem/pull/743 +[xilem#755]: https://github.com/linebender/xilem/pull/743 +[xilem#762]: https://github.com/linebender/xilem/pull/743 [Color 0.1.0]: https://docs.rs/color/0.1.0/color/ [Velato 0.4.0]: https://github.com/linebender/velato/releases/tag/v0.4.0 From 883cf7acdd048629bca59cdebdc4935cacba218b Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 12:00:55 +0000 Subject: [PATCH 13/18] Revert "Remove very low information sections (Kurbo and Peniko)" This reverts commit c6cff92ed90cd82b63d2d6cb00c55adf4dfcf3e6. --- content/blog/2024-12-03-tmil-11/index.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 368b8c8..13737c7 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -119,6 +119,19 @@ In November, the main updates were: Kaur also made several improvements to our CI, in [parley#156][], [parley#171][] and [parley#184][]. +## Kurbo + +Kurbo has seen some minor updates within the last month and we're planning to publish them in a minor patch release within the next month. + +* [kurbo#390][] Reduce number of operations in `Triangle::circumscribed_circle`. +* [kurbo#399][] Implement `Sum` for `Vec2`. + +## Peniko + +We've been working towards a big release, which will remove the old `peniko::Color` type and use the new `color` crate instead. +This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. + + ## Piet While there were no code changes, we did begin a discussion about a possible major revision to Piet and what a next-generation Piet might look like. From 62c895d03e2769d9b1509db4688409bf02ba5d21 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 13:41:08 +0000 Subject: [PATCH 14/18] Apply suggestions from code review Co-authored-by: Kaur Kuut --- content/blog/2024-12-03-tmil-11/index.md | 51 ++++++++++++------------ 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 13737c7..0f27e84 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -86,7 +86,7 @@ Work on Xilem web has been continuing well: 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#670][]: Added some features needed for custom client side decorations, by Marco Melorio. +* [xilem#670][]: Added some features needed for custom client side decorations, by Marco Melorio. * [xilem#735][]: Viktor Strate Kløvedal found and resolved several features which incorrectly private. * [xilem#736][]: Added a padding property to `SizedBox`. This PR also exposed this property to Xilem. * [xilem#754][], [xilem#755][], [xilem#762][]: Refactored Masonry's text support to reduce internal duplication and validate previously mentioned changes in Parley. @@ -106,7 +106,8 @@ It can draw large 2D scenes with high performance, using GPU compute shaders for ## Parley -Parley is a text layout library. It handles text layout, mostly at the level of line breaking and resolving glyph positions. +Parley is a text layout library. +It handles text layout, mostly at the level of line breaking and resolving glyph positions. In November, the main updates were: * [parley#158][], [parley#160][]: Worked towards `no_std`. Full `no_std` is currently blocked (only) on the release of a dependency. @@ -130,8 +131,6 @@ Kurbo has seen some minor updates within the last month and we're planning to pu We've been working towards a big release, which will remove the old `peniko::Color` type and use the new `color` crate instead. This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. - - ## Piet While there were no code changes, we did begin a discussion about a possible major revision to Piet and what a next-generation Piet might look like. @@ -194,34 +193,34 @@ See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-off [talk]: https://xi.zulipchat.com/#narrow/channel/197075-gpu [brendanzab]: https://github.com/brendanzab -[parley#152]: https://github.com/linebender/parley/pull/743 -[parley#154]: https://github.com/linebender/parley/pull/743 -[parley#156]: https://github.com/linebender/parley/pull/743 -[parley#158]: https://github.com/linebender/parley/pull/743 -[parley#160]: https://github.com/linebender/parley/pull/743 -[parley#166]: https://github.com/linebender/parley/pull/743 -[parley#170]: https://github.com/linebender/parley/pull/743 -[parley#171]: https://github.com/linebender/parley/pull/743 -[parley#173]: https://github.com/linebender/parley/pull/743 -[parley#182]: https://github.com/linebender/parley/pull/743 -[parley#184]: https://github.com/linebender/parley/pull/743 +[parley#152]: https://github.com/linebender/parley/pull/152 +[parley#154]: https://github.com/linebender/parley/pull/154 +[parley#156]: https://github.com/linebender/parley/pull/156 +[parley#158]: https://github.com/linebender/parley/pull/158 +[parley#160]: https://github.com/linebender/parley/pull/160 +[parley#166]: https://github.com/linebender/parley/pull/166 +[parley#170]: https://github.com/linebender/parley/pull/170 +[parley#171]: https://github.com/linebender/parley/pull/171 +[parley#173]: https://github.com/linebender/parley/pull/173 +[parley#182]: https://github.com/linebender/parley/pull/182 +[parley#184]: https://github.com/linebender/parley/pull/184 [resvg#843]: https://github.com/linebender/resvg/pull/843 [resvg#850]: https://github.com/linebender/resvg/pull/850 [vello#722]: https://github.com/linebender/vello/pull/722 [vello#735]: https://github.com/linebender/vello/pull/735 [vello#740]: https://github.com/linebender/vello/pull/740 [vello#743]: https://github.com/linebender/vello/pull/743 -[xilem#670]: https://github.com/linebender/xilem/pull/743 -[xilem#731]: https://github.com/linebender/xilem/pull/743 -[xilem#732]: https://github.com/linebender/xilem/pull/743 -[xilem#734]: https://github.com/linebender/xilem/pull/743 -[xilem#735]: https://github.com/linebender/xilem/pull/743 -[xilem#736]: https://github.com/linebender/xilem/pull/743 -[xilem#742]: https://github.com/linebender/xilem/pull/743 -[xilem#749]: https://github.com/linebender/xilem/pull/743 -[xilem#754]: https://github.com/linebender/xilem/pull/743 -[xilem#755]: https://github.com/linebender/xilem/pull/743 -[xilem#762]: https://github.com/linebender/xilem/pull/743 +[xilem#670]: https://github.com/linebender/xilem/pull/670 +[xilem#731]: https://github.com/linebender/xilem/pull/731 +[xilem#732]: https://github.com/linebender/xilem/pull/732 +[xilem#734]: https://github.com/linebender/xilem/pull/734 +[xilem#735]: https://github.com/linebender/xilem/pull/735 +[xilem#736]: https://github.com/linebender/xilem/pull/736 +[xilem#742]: https://github.com/linebender/xilem/pull/742 +[xilem#749]: https://github.com/linebender/xilem/pull/749 +[xilem#754]: https://github.com/linebender/xilem/pull/754 +[xilem#755]: https://github.com/linebender/xilem/pull/755 +[xilem#762]: https://github.com/linebender/xilem/pull/762 [Color 0.1.0]: https://docs.rs/color/0.1.0/color/ [Velato 0.4.0]: https://github.com/linebender/velato/releases/tag/v0.4.0 From a3cb466390ed35a7c85d44bae710bd2e34160a93 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:01:03 +0000 Subject: [PATCH 15/18] Apply suggestions from code review Co-authored-by: Tom Churchman Co-authored-by: Kaur Kuut --- content/blog/2024-12-03-tmil-11/index.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-03-tmil-11/index.md index 0f27e84..5f19f8d 100644 --- a/content/blog/2024-12-03-tmil-11/index.md +++ b/content/blog/2024-12-03-tmil-11/index.md @@ -58,7 +58,7 @@ Since then, we have begun the work of making Peniko and Vello use the Color crat Early next year, we hope to use it within SVG Types, Resvg, and Tiny Skia. We will be publishing a 0.2.0 release within the next month and encourage people to give it a try. -The 0.2.0 release will include some additional (non-CSS 4) color spaces like ACEScg, OkHsl, and OkHsv as well as things that we found useful when using it in Peniko and Vello. +The 0.2.0 release will include the (non-CSS 4) color space ACEScg, as well as things that we found useful when using Color in Peniko and Vello. Many thanks to [Brendan Zabarauskas][brendanzab] for working with us to transfer his `color` crate name for our use. His original crate was published as 0.0.1 on November 21, 2014, motivating us ten years later to ship our 0.1.0 on November 21, 2024. @@ -87,7 +87,7 @@ 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#670][]: Added some features needed for custom client side decorations, by Marco Melorio. -* [xilem#735][]: Viktor Strate Kløvedal found and resolved several features which incorrectly private. +* [xilem#735][]: Viktor Strate Kløvedal made several widget properties publicly accessible. * [xilem#736][]: Added a padding property to `SizedBox`. This PR also exposed this property to Xilem. * [xilem#754][], [xilem#755][], [xilem#762][]: Refactored Masonry's text support to reduce internal duplication and validate previously mentioned changes in Parley. @@ -131,6 +131,7 @@ Kurbo has seen some minor updates within the last month and we're planning to pu We've been working towards a big release, which will remove the old `peniko::Color` type and use the new `color` crate instead. This release will be the start of a path towards wider color gamut support throughout the Linebender ecosystem. + ## Piet While there were no code changes, we did begin a discussion about a possible major revision to Piet and what a next-generation Piet might look like. From 14a8bd6406a9415d85242585eb4e9579612907bc Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:15:01 +0000 Subject: [PATCH 16/18] Update date --- content/blog/{2024-12-03-tmil-11 => 2024-12-18-tmil-11}/index.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename content/blog/{2024-12-03-tmil-11 => 2024-12-18-tmil-11}/index.md (100%) diff --git a/content/blog/2024-12-03-tmil-11/index.md b/content/blog/2024-12-18-tmil-11/index.md similarity index 100% rename from content/blog/2024-12-03-tmil-11/index.md rename to content/blog/2024-12-18-tmil-11/index.md From 7fe4794212626e0159980467a97fe8ac77b32ee4 Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:15:42 +0000 Subject: [PATCH 17/18] Fix missing links --- content/blog/2024-12-18-tmil-11/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/blog/2024-12-18-tmil-11/index.md b/content/blog/2024-12-18-tmil-11/index.md index 5f19f8d..fe1cb7d 100644 --- a/content/blog/2024-12-18-tmil-11/index.md +++ b/content/blog/2024-12-18-tmil-11/index.md @@ -194,6 +194,8 @@ See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-off [talk]: https://xi.zulipchat.com/#narrow/channel/197075-gpu [brendanzab]: https://github.com/brendanzab +[kurbo#390]: https://github.com/linebender/kurbo/pull/390 +[kurbo#399]: https://github.com/linebender/kurbo/pull/399 [parley#152]: https://github.com/linebender/parley/pull/152 [parley#154]: https://github.com/linebender/parley/pull/154 [parley#156]: https://github.com/linebender/parley/pull/156 From e262f8af90f96a54a65de5117c1e269dc40f334a Mon Sep 17 00:00:00 2001 From: Daniel McNab <36049421+DJMcNab@users.noreply.github.com> Date: Wed, 18 Dec 2024 14:16:10 +0000 Subject: [PATCH 18/18] n --- content/blog/2024-12-18-tmil-11/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/blog/2024-12-18-tmil-11/index.md b/content/blog/2024-12-18-tmil-11/index.md index fe1cb7d..6fa877a 100644 --- a/content/blog/2024-12-18-tmil-11/index.md +++ b/content/blog/2024-12-18-tmil-11/index.md @@ -78,7 +78,7 @@ This month only had small updates otherwise: Work on Xilem web has been continuing well: -* [xilem#731][], [xilem#734][]: Added a example using our SVG support for drawing, called `svgdraw`. +* [xilem#731][], [xilem#734][]: Added an example using our SVG support for drawing, called `svgdraw`. * [xilem#749][]: Experimentally increased support for custom view context types. ## Masonry