| namespace UnityEngine.PostProcessing | 
| { | 
|     public sealed class VignetteComponent : PostProcessingComponentRenderTexture<VignetteModel> | 
|     { | 
|         static class Uniforms | 
|         { | 
|             internal static readonly int _Vignette_Color    = Shader.PropertyToID("_Vignette_Color"); | 
|             internal static readonly int _Vignette_Center   = Shader.PropertyToID("_Vignette_Center"); | 
|             internal static readonly int _Vignette_Settings = Shader.PropertyToID("_Vignette_Settings"); | 
|             internal static readonly int _Vignette_Mask     = Shader.PropertyToID("_Vignette_Mask"); | 
|             internal static readonly int _Vignette_Opacity  = Shader.PropertyToID("_Vignette_Opacity"); | 
|         } | 
|   | 
|         public override bool active | 
|         { | 
|             get | 
|             { | 
|                 return model.enabled | 
|                        && !context.interrupted; | 
|             } | 
|         } | 
|   | 
|         public override void Prepare(Material uberMaterial) | 
|         { | 
|             var settings = model.settings; | 
|             uberMaterial.SetColor(Uniforms._Vignette_Color, settings.color); | 
|   | 
|             if (settings.mode == VignetteModel.Mode.Classic) | 
|             { | 
|                 uberMaterial.SetVector(Uniforms._Vignette_Center, settings.center); | 
|                 uberMaterial.EnableKeyword("VIGNETTE_CLASSIC"); | 
|                 float roundness = (1f - settings.roundness) * 6f + settings.roundness; | 
|                 uberMaterial.SetVector(Uniforms._Vignette_Settings, new Vector4(settings.intensity * 3f, settings.smoothness * 5f, roundness, settings.rounded ? 1f : 0f)); | 
|             } | 
|             else if (settings.mode == VignetteModel.Mode.Masked) | 
|             { | 
|                 if (settings.mask != null && settings.opacity > 0f) | 
|                 { | 
|                     uberMaterial.EnableKeyword("VIGNETTE_MASKED"); | 
|                     uberMaterial.SetTexture(Uniforms._Vignette_Mask, settings.mask); | 
|                     uberMaterial.SetFloat(Uniforms._Vignette_Opacity, settings.opacity); | 
|                 } | 
|             } | 
|         } | 
|     } | 
| } |