using System;
namespace UnityEngine.Rendering.Universal
{
///
/// A volume component that holds settings for the Color Adjustments effect.
///
[Serializable, VolumeComponentMenu("Post-processing/Color Curves")]
[SupportedOnRenderPipeline(typeof(UniversalRenderPipelineAsset))]
[URPHelpURL("Post-Processing-Color-Curves")]
public sealed class ColorCurves : VolumeComponent, IPostProcessComponent
{
///
/// Affects the luminance across the whole image.
///
[Tooltip("Affects the luminance across the whole image.")]
public TextureCurveParameter master = new TextureCurveParameter(new TextureCurve(new[] { new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f) }, 0f, false, new Vector2(0f, 1f)));
///
/// Affects the red channel intensity across the whole image.
///
[Tooltip("Affects the red channel intensity across the whole image.")]
public TextureCurveParameter red = new TextureCurveParameter(new TextureCurve(new[] { new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f) }, 0f, false, new Vector2(0f, 1f)));
///
/// Affects the green channel intensity across the whole image.
///
[Tooltip("Affects the green channel intensity across the whole image.")]
public TextureCurveParameter green = new TextureCurveParameter(new TextureCurve(new[] { new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f) }, 0f, false, new Vector2(0f, 1f)));
///
/// Affects the blue channel intensity across the whole image.
///
[Tooltip("Affects the blue channel intensity across the whole image.")]
public TextureCurveParameter blue = new TextureCurveParameter(new TextureCurve(new[] { new Keyframe(0f, 0f, 1f, 1f), new Keyframe(1f, 1f, 1f, 1f) }, 0f, false, new Vector2(0f, 1f)));
///
/// Shifts the input hue (x-axis) according to the output hue (y-axis).
///
[Tooltip("Shifts the input hue (x-axis) according to the output hue (y-axis).")]
public TextureCurveParameter hueVsHue = new TextureCurveParameter(new TextureCurve(new Keyframe[] { }, 0.5f, true, new Vector2(0f, 1f)));
///
/// Adjusts saturation (y-axis) according to the input hue (x-axis).
///
[Tooltip("Adjusts saturation (y-axis) according to the input hue (x-axis).")]
public TextureCurveParameter hueVsSat = new TextureCurveParameter(new TextureCurve(new Keyframe[] { }, 0.5f, true, new Vector2(0f, 1f)));
///
/// Adjusts saturation (y-axis) according to the input saturation (x-axis).
///
[Tooltip("Adjusts saturation (y-axis) according to the input saturation (x-axis).")]
public TextureCurveParameter satVsSat = new TextureCurveParameter(new TextureCurve(new Keyframe[] { }, 0.5f, false, new Vector2(0f, 1f)));
///
/// Adjusts saturation (y-axis) according to the input luminance (x-axis).
///
[Tooltip("Adjusts saturation (y-axis) according to the input luminance (x-axis).")]
public TextureCurveParameter lumVsSat = new TextureCurveParameter(new TextureCurve(new Keyframe[] { }, 0.5f, false, new Vector2(0f, 1f)));
///
public bool IsActive() => true;
///
[Obsolete("Unused #from(2023.1)", false)]
public bool IsTileCompatible() => true;
}
}