slint-sc: blend translucent rectangles - #12810
Draft
tronical wants to merge 2 commits into
Draft
Conversation
The Color channel accessors were the only ones missing a doc comment.
A rectangle background with an alpha channel below 0xff now composites over what the frame buffer holds instead of overwriting it. Color gains a public composite_over implementing the Porter-Duff over operation. The window background must be a color literal with an alpha channel of 0xff, so that a rendered frame doesn't depend on what the buffer held beforehand. The check runs after inlining, so it sees a background inherited from a base component, and before ensure_window, which would otherwise give a non-Window root a synthetic background from the style.
tronical
marked this pull request as draft
August 6, 2026 15:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A
Rectanglebackground with an alpha channel below0xffnow composites overwhat the frame buffer already holds, instead of overwriting it.
Colorgains apublic
composite_over, the Porter-Duff over operation.The
Windowbackground must now be an opaque colour literal, so a renderedframe doesn't depend on what the buffer held before. It can no longer be set by
the application at all — a property reference can't be proven opaque.
Rectangles keep that freedom.