using System; using UnityEngine; namespace UnityStandardAssets.ImageEffects { // Token: 0x0200005A RID: 90 [ExecuteInEditMode] [AddComponentMenu("Image Effects/Blur/Blur")] public class Blur : MonoBehaviour { // Token: 0x17000052 RID: 82 // (get) Token: 0x060000E0 RID: 224 RVA: 0x000098E4 File Offset: 0x00007CE4 protected Material material { get { if (Blur.m_Material == null) { Blur.m_Material = new Material(this.blurShader); Blur.m_Material.hideFlags = HideFlags.DontSave; } return Blur.m_Material; } } // Token: 0x060000E1 RID: 225 RVA: 0x00009917 File Offset: 0x00007D17 protected void OnDisable() { if (Blur.m_Material) { global::UnityEngine.Object.DestroyImmediate(Blur.m_Material); } } // Token: 0x060000E2 RID: 226 RVA: 0x00009934 File Offset: 0x00007D34 protected void Start() { if (!SystemInfo.supportsImageEffects) { base.enabled = false; return; } if (!this.blurShader || !this.material.shader.isSupported) { base.enabled = false; return; } } // Token: 0x060000E3 RID: 227 RVA: 0x00009980 File Offset: 0x00007D80 public void FourTapCone(RenderTexture source, RenderTexture dest, int iteration) { float num = 0.5f + (float)iteration * this.blurSpread; Graphics.BlitMultiTap(source, dest, this.material, new Vector2[] { new Vector2(-num, -num), new Vector2(-num, num), new Vector2(num, num), new Vector2(num, -num) }); } // Token: 0x060000E4 RID: 228 RVA: 0x00009A00 File Offset: 0x00007E00 private void DownSample4x(RenderTexture source, RenderTexture dest) { float num = 1f; Graphics.BlitMultiTap(source, dest, this.material, new Vector2[] { new Vector2(-num, -num), new Vector2(-num, num), new Vector2(num, num), new Vector2(num, -num) }); } // Token: 0x060000E5 RID: 229 RVA: 0x00009A78 File Offset: 0x00007E78 private void OnRenderImage(RenderTexture source, RenderTexture destination) { int num = source.width / 4; int num2 = source.height / 4; RenderTexture renderTexture = RenderTexture.GetTemporary(num, num2, 0); this.DownSample4x(source, renderTexture); for (int i = 0; i < this.iterations; i++) { RenderTexture temporary = RenderTexture.GetTemporary(num, num2, 0); this.FourTapCone(renderTexture, temporary, i); RenderTexture.ReleaseTemporary(renderTexture); renderTexture = temporary; } Graphics.Blit(renderTexture, destination); RenderTexture.ReleaseTemporary(renderTexture); } // Token: 0x040001E6 RID: 486 [Range(0f, 10f)] public int iterations = 3; // Token: 0x040001E7 RID: 487 [Range(0f, 1f)] public float blurSpread = 0.6f; // Token: 0x040001E8 RID: 488 public Shader blurShader; // Token: 0x040001E9 RID: 489 private static Material m_Material; } }