Skip to main content

Module desktop

Module desktop 

Expand description

The desktop, blurred, for surfaces that stand on it alone.

A window group’s docked tab strip is frosted over the desktop, and only the desktop is ever behind it: windows never overlap. So its blur needs no pass over what the frame drew before it (super::BackdropBlur), only the desktop, which changes when the wallpaper, the displays or the theme’s blur do. The desktop’s painter publishes it blurred once per such change (publish, blurred_cover); a strip fills its body with that picture and the material’s tint (fill). The strip is then an ordinary image fill: it encodes the same while nothing behind it changed, a hover on a tab damages only the tab, and a presenter that moves a strip’s retained pixels during a pan moves its frosting with it, to be drawn again where it comes to rest.

Structs§

DesktopPiece
One display’s desktop, blurred: brush placed by brush_transform over rect, all in the coordinates transform maps into the desktop’s.

Functions§

blurred_cover
image covering rect as a desktop paints a wallpaper (scaled to cover it, centred), blurred by blur_px logical pixels: the blurred picture and the transform that places it over rect. Made once per wallpaper, size and radius on this thread. None for an image whose pixels are not in memory.
image_piece
A blurred wallpaper’s piece, from blurred_cover.
publish
The desktop a frame draws, blurred, in the coordinates of the scene the desktop is drawn into. The desktop’s painter publishes it every time it paints; an empty list says there is no picture to frost with, and surfaces over the desktop are then opaque.
published
Whether a desktop is published on this thread.
smooth_piece
The desktop’s pieces with no wallpaper: brush (a gradient, already as smooth as its blur) over rect.