Files
2026-06-04 11:42:34 +02:00

109 lines
2.8 KiB
C#

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;
}
}