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

import Foundation
import Metal

public class GrayscaleLinearGradientRenderable: ConfiguredQuadRenderable<GrayscaleLinearGradientRenderable.Config> {
    
    public struct Config: QuadRenderConfiguration {
        
        internal let rotation_ratio: ADFloat
        internal let start: ADFloat
        internal let stop: ADFloat
        
        public init(
            rotationRatio: ADFloat = 0.0,
            start: ADFloat = 0.0,
            stop: ADFloat = 1.0) {
                
            self.rotation_ratio = rotationRatio
            self.start = start
            self.stop = stop
        }
        
        public static var defaultConfiguration: Config {
            return Config()
        }
    }
    
    override public var configureAction: ConfigureAction {
        return { encoder in
            super.configureAction(encoder)
        }
    }
    
    override var fragmentShaderName: String {
        return "grayscale_linear_gradient_frag"
    }
}
