Option Strict On
Option Explicit On

Imports SkiaSharp

Namespace Nexamas.UI.Rendering

    Friend NotInheritable Class MASCrystalIceSurfaceMaterial
        Implements IMASSurfaceMaterial

        Public ReadOnly Property Id As String Implements IMASSurfaceMaterial.Id
            Get
                Return MASSurfaceMaterialIds.CrystalIce
            End Get
        End Property

        Friend Sub Draw(canvas As SKCanvas,
                        context As MASSurfaceMaterialContext) Implements IMASSurfaceMaterial.Draw

            If canvas Is Nothing Then Return
            If context Is Nothing Then Return

            Dim rectPx As SKRect = context.BoundsPx
            Dim radiusPx As Single = context.CornerRadiusPx
            If rectPx.Width <= 0.5F OrElse rectPx.Height <= 0.5F Then Return

            Dim palette As MASSurfaceMaterialPalette =
                MASSurfaceMaterialThemeResolver.Resolve(Me.Id, context)

            Dim wash As SKColor = context.SurfaceTheme.Material.Wash

            MASCrystalIceSurfacePainter.DrawCrystalIceMaterialBody(
                canvas:=canvas,
                baseRect:=rectPx,
                radius:=radiusPx,
                dpi:=context.Dpi,
                topCol:=palette.Top,
                midCol:=palette.Mid,
                botCol:=palette.Bottom,
                wash:=wash)
        End Sub

    End Class

End Namespace