//
//  MaskedCircleFadeRenderable.swift
//  Adamantium
//
//  Created by Sunny Uppal on 11/26/24.
//

public class MaskedCircleFadeRenderable: ConfiguredQuadRenderable<MaskedCircleFadeRenderable.Config> {
    
    public struct Config: QuadRenderConfiguration {
        
        internal let radius: ADFloat
        internal let scale: ADFloat
        internal let fade_start: ADFloat
        internal let fade_end: ADFloat
        internal let x_offset: ADFloat
        internal let y_offset: ADFloat
        internal let invert_mix: ADFloat
        
        public init(
            radius: ADFloat = 0.2,
            scale: ADFloat = 1.0,
            fadeStart: ADFloat = 0.0,
            fadeEnd: ADFloat = 0.1,
            xOffset: ADFloat = 0.0,
            yOffset: ADFloat = 0.0,
            invertMix: ADFloat = 0.0
        ) {
            self.radius = radius
            self.scale = scale
            self.fade_start = fadeStart
            self.fade_end = fadeEnd
            self.x_offset = xOffset
            self.y_offset = yOffset
            self.invert_mix = invertMix
        }
        
        public static var defaultConfiguration: Config {
            return Config()
        }
    }
    
    override public var configureAction: ConfigureAction {
        return { encoder in
            super.configureAction(encoder)
        }
    }
    
    override var fragmentShaderName: String {
        return "masking_circle_fade_frag"
    }
}
