using System.Windows.Media;
namespace ytLive.Models;
///
/// The transient zoom layer: a real scene element parked at z-index 1 (above the
/// background, below every other layer) whose pixels are the 2x-magnified backdrop
/// centred on the zoom box. The app paints it into the stream/recording exactly like
/// any other layer. While inactive it is a 0x0 invisible placeholder that is never
/// persisted (LayoutStore hand-rolls only Source/WebcamSceneConfig rows) — the VM
/// re-inserts it on load and on scene creation, mirroring how backgrounds heal.
///
public sealed class ZoomSceneElement : SceneElement
{
/// True only while a zoom box is live; flips Kind so the layer leaves
/// the baked static base and composites per-frame.
public bool IsZoomActive { get; set; }
public override ElementKind Kind => IsZoomActive ? ElementKind.Dynamic : ElementKind.Static;
public override bool IsZoomLayer => true;
public override bool IsDraggable => false;
/// Never rendered by the element template — the preview magnifier
/// (ZoomBox) and the output resolver own its pixels.
public override ImageSource? DisplaySource => null;
}