internal override Visual?GetVisualRoot(CompositionContext context) { bool layerHasMasks = false; #if !NoClipping layerHasMasks = _context.Layer.Masks.Any(); #endif if (!Transforms.TryCreateShapeVisualTransformChain(_context, out var rootNode, out var contentsNode)) { // The layer is never visible. return(null); } var shapeContext = new ShapeContext(_context); contentsNode.Shapes.Add(TranslateShapeLayerContents(shapeContext, _context.Layer.Contents)); Visual result = layerHasMasks ? Masks.TranslateAndApplyMasksForLayer(_context, rootNode) : rootNode; var dropShadowEffect = _context.Effects.DropShadowEffect; if (dropShadowEffect is not null) { result = Effects.ApplyDropShadow(_context, result, dropShadowEffect); } var gaussianBlurEffect = _context.Effects.GaussianBlurEffect; if (gaussianBlurEffect is not null) { result = Effects.ApplyGaussianBlur(_context, result, gaussianBlurEffect); } return(result); }