feat(blur): the editor shows the blur — whatever is beneath it is blurred, in the preview
The preview canvas is WPF visuals; a blur layer contributes no visual of its own, so until now the creator saw nothing where the blur was and could not tell what it was hiding. Each visible blur now draws a rectangle (or ellipse) filled with a VisualBrush of the whole BackdropLayer — the desktop capture plus the background art — sampled at the blur's own rect and carrying a BlurEffect at the same strength the compositor uses. The host canvas sits after the backdrop and before the element layers, which is the model's own z-rule, so the preview shows exactly what the output will: desktop blurred, brand and everything above it untouched. Rebuilt on scene change, on add/remove, and on any blur property change (position, size, shape, strength) — the brush samples the live backdrop, so the picture keeps moving underneath.
This commit is contained in:
@@ -71,6 +71,15 @@
|
||||
Visibility="{Binding BackgroundVisible, Converter={StaticResource BoolToVis}}"/>
|
||||
<Image Source="{Binding ActiveBackgroundImage}" Stretch="UniformToFill"/>
|
||||
</Grid>
|
||||
<!-- Privacy blur preview (2026-11-01): whatever is BENEATH a blur layer
|
||||
is blurred, right here in the editor — not a hatched placeholder. Each
|
||||
child is a rectangle/ellipse filled with a VisualBrush of the whole
|
||||
BackdropLayer (the desktop + background art), clipped to the blur's
|
||||
shape and blurred at the same strength the output uses. Hosted AFTER
|
||||
the backdrop and BEFORE the element layers, which is the model's own
|
||||
z-rule: the blur sits above the desktop and below the brand. -->
|
||||
<Canvas x:Name="BlurPreviewHost" Width="1920" Height="1080" IsHitTestVisible="False"/>
|
||||
|
||||
<Image x:Name="TransitionOverlay" Width="1920" Height="1080" Stretch="Fill"
|
||||
IsHitTestVisible="False" Visibility="Collapsed"/>
|
||||
<Canvas x:Name="OverlayCanvas" Width="1920" Height="1080">
|
||||
|
||||
Reference in New Issue
Block a user