' SSOT-V2 Signature: This class/file follows the SSOT-V2 architecture.
Option Strict On
Option Explicit On

Imports System
Imports Nexamas.UI.Architecture
Imports Nexamas.UI.General
Imports Nexamas.UI.Theming
Imports Nexamas.UI.Values
Imports SkiaSharp

Namespace Nexamas.UI.Rendering

    Partial Friend NotInheritable Class MASVisualPrimitivesPainter

#Region "PanelShell / Fenster façade"

        Friend Sub DrawPanelShellAcrylic_NoShadow(canvas As SKCanvas,
                                                  ctx As MASThemeContext,
                                                  r As SKRect,
                                                  dpi As Single,
                                                  contract As MASResolvedComponentContract)

            DrawAcrylicSurface(
                canvas:=canvas,
                ctx:=ctx,
                r:=r,
                dpi:=dpi,
                contract:=contract)

        End Sub

        Friend Sub DrawPanelShellAcrylicBody_NoShadow(canvas As SKCanvas,
                                                      ctx As MASThemeContext,
                                                      r As SKRect,
                                                      dpi As Single,
                                                      contract As MASResolvedComponentContract)

            If _disposed Then Return
            If canvas Is Nothing OrElse ctx Is Nothing Then Return
            If contract Is Nothing Then Throw New ArgumentNullException(NameOf(contract))
            If r.Width <= 1 OrElse r.Height <= 1 Then Return

            contract.AssertConsumable()

            Dim m As MASSurfaceInteractionRing.Metrics
            Dim baseRect As SKRect

            If Not MASVisualEffectGeometry.TryResolveBaseRect(r, dpi, m, baseRect) Then Return

            Dim radius As Single = ResolveSurfaceRadiusPx(contract, baseRect, dpi)
            radius = PixelSnap.SafeRadius(radius)

            Dim pal As MASAcrylicEffectPaletteResolver.AcrylicPalette

            If Not MASAcrylicEffectPaletteResolver.TryResolveThemePalette(ctx, contract, pal) Then Return

            _visualResources.CoolAcrylic.DrawCoolAcrylicBody(
    canvas:=canvas,
    baseRect:=baseRect,
    radius:=radius,
    dpi:=dpi,
    fam:=contract.SurfaceFamily,
    topCol:=pal.Top,
    midCol:=pal.Mid,
    botCol:=pal.Bot,
    wash:=pal.Wash,
    borderOuter:=SKColors.Transparent,
    borderInner:=SKColors.Transparent)

        End Sub

        Friend Sub DrawFensterSurfacePremium_NoShadow(canvas As SKCanvas,
                                                      ctx As MASThemeContext,
                                                      r As SKRect,
                                                      dpi As Single,
                                                      contract As MASResolvedComponentContract)

            DrawAcrylicSurface(
                canvas:=canvas,
                ctx:=ctx,
                r:=r,
                dpi:=dpi,
                contract:=contract)

        End Sub

        Friend Sub DrawFensterSurfacePremiumBody_NoShadow(canvas As SKCanvas,
                                                          ctx As MASThemeContext,
                                                          r As SKRect,
                                                          dpi As Single,
                                                          contract As MASResolvedComponentContract)

            DrawPanelShellAcrylicBody_NoShadow(
                canvas:=canvas,
                ctx:=ctx,
                r:=r,
                dpi:=dpi,
                contract:=contract)

        End Sub

#End Region



    End Class

End Namespace
