Screen backdrop (schema v5/v6) + five-scene catalog + webcam polish: live desktop/game capture as a permanent non-deletable bottom layer (Source.IsBackdrop), auto full-screen game detection (Win32FullScreenDetector) else primary display, GraphicsCapturePicker re-designation, refcounted shared ScreenCaptureManager, Live-only backdrop by policy (HasBackdrop + v5-v6 backfill + EnforceBackdropPolicy, checkbox gone), SceneCatalog (Starting/Live/BRB/Chat/Ending) with + button re-adding missing scenes, webcam mid-session transparent-container fix (GetPreviewBitmap propagation), Chat half-screen-area cap, 'Add Webcam' always opens the picker (SwapWebcamIdentityAsync, no silent resurrect), WindowsRuntimeMarshal frame-read + 5s-throttled errors, docs updated, tests (65 passing)
This commit is contained in:
@@ -101,9 +101,14 @@ public sealed class RoundClipInteractionTests
|
||||
// The round clip must render as a circle (square bounding box), not an oval.
|
||||
webcam.ClipShape = ClipShape.Round;
|
||||
window.UpdateLayout();
|
||||
var ellipse = FindRoundEllipse(window);
|
||||
Assert.NotNull(ellipse);
|
||||
Assert.Equal(ellipse!.RenderSize.Width, ellipse.RenderSize.Height, 1.0);
|
||||
var clip = FindRoundClip(window);
|
||||
Assert.NotNull(clip);
|
||||
var geometry = Assert.IsType<EllipseGeometry>(clip!.Clip);
|
||||
Assert.Equal(0.5, geometry.Center.X, 1.0);
|
||||
Assert.Equal(0.5, geometry.Center.Y, 1.0);
|
||||
Assert.Equal(0.5, geometry.RadiusX, 1.0);
|
||||
Assert.Equal(0.5, geometry.RadiusY, 1.0);
|
||||
Assert.Equal(clip.ActualWidth, clip.ActualHeight, 1.0);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@@ -114,9 +119,9 @@ public sealed class RoundClipInteractionTests
|
||||
}
|
||||
}
|
||||
|
||||
private static Ellipse? FindRoundEllipse(Window window)
|
||||
private static Image? FindRoundClip(Window window)
|
||||
{
|
||||
return Walk(window, element => element is Ellipse e && e.IsVisible) as Ellipse;
|
||||
return Walk(window, element => element is Image i && i.IsVisible && i.Clip is EllipseGeometry) as Image;
|
||||
}
|
||||
|
||||
private static DependencyObject? Walk(DependencyObject parent, Func<DependencyObject, bool> predicate)
|
||||
|
||||
Reference in New Issue
Block a user