SceneLayer.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using Avalonia.Media;
  3. using Avalonia.Platform;
  4. using Avalonia.VisualTree;
  5. namespace Avalonia.Rendering.SceneGraph
  6. {
  7. public class SceneLayer
  8. {
  9. public SceneLayer(IVisual layerRoot, int distanceFromRoot)
  10. {
  11. LayerRoot = layerRoot;
  12. Dirty = new DirtyRects();
  13. DistanceFromRoot = distanceFromRoot;
  14. }
  15. public SceneLayer Clone()
  16. {
  17. return new SceneLayer(LayerRoot, DistanceFromRoot)
  18. {
  19. Opacity = Opacity,
  20. OpacityMask = OpacityMask,
  21. OpacityMaskRect = OpacityMaskRect,
  22. GeometryClip = GeometryClip,
  23. };
  24. }
  25. public IVisual LayerRoot { get; }
  26. public DirtyRects Dirty { get; }
  27. public int DistanceFromRoot { get; }
  28. public double Opacity { get; set; } = 1;
  29. public IBrush OpacityMask { get; set; }
  30. public Rect OpacityMaskRect { get; set; }
  31. public IGeometryImpl GeometryClip { get; set; }
  32. }
  33. }