using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;

namespace Kav
{

    public class DeferredPBR_AmbientLightEffect : Effect
    {
        EffectParameter gPositionParam;
        EffectParameter gAlbedoParam;

        EffectParameter ambientColorParam;

        public Texture2D GPosition { get; set; }
        public Texture2D GAlbedo { get; set; }

        public Vector3 AmbientColor { get; set; }

        public DeferredPBR_AmbientLightEffect(GraphicsDevice graphicsDevice) : base(graphicsDevice, Resources.DeferredPBR_AmbientLightEffect)
        {
            CacheEffectParameters();
        }

        protected override void OnApply()
        {
            gPositionParam.SetValue(GPosition);
            gAlbedoParam.SetValue(GAlbedo);
            ambientColorParam.SetValue(AmbientColor);
        }

        void CacheEffectParameters()
        {
            gPositionParam    = Parameters["gPosition"];
            gAlbedoParam      = Parameters["gAlbedo"];
            ambientColorParam = Parameters["AmbientLightColor"];
        }
    }
}