A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

25 lines
731 B

using Avalonia.Media;
using Avalonia.Platform;
namespace Avalonia.Rendering.Composition.Drawing.Nodes;
class RenderDataOpacityMaskNode : RenderDataPushNode, IRenderDataItemWithServerResources
{
public IBrush? ServerBrush { get; set; }
public Rect BoundsRect { get; set; }
public void Collect(IRenderDataServerResourcesCollector collector)
{
collector.AddRenderDataServerResource(ServerBrush);
}
public override void Push(ref RenderDataNodeRenderContext context)
{
if (ServerBrush != null)
context.Context.PushOpacityMask(ServerBrush, BoundsRect);
}
public override void Pop(ref RenderDataNodeRenderContext context) =>
context.Context.PopOpacityMask();
}