Files
BepInEx/Projects/BanquetForFools/Source/Assembly-CSharp/UnityStandardAssets/ImageEffects/BlurOptimized.cs
2025-05-21 20:40:04 +02:00

88 lines
2.8 KiB
C#

using System;
using UnityEngine;
namespace UnityStandardAssets.ImageEffects
{
// Token: 0x02000119 RID: 281
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
[AddComponentMenu("Image Effects/Blur/Blur (Optimized)")]
public class BlurOptimized : PostEffectsBase
{
// Token: 0x060016C7 RID: 5831 RVA: 0x001A1411 File Offset: 0x0019F611
public void OnEnable()
{
}
// Token: 0x060016C8 RID: 5832 RVA: 0x001A1413 File Offset: 0x0019F613
public void OnDisable()
{
}
// Token: 0x060016C9 RID: 5833 RVA: 0x001A1418 File Offset: 0x0019F618
public void OnRenderImage(RenderTexture source, RenderTexture destination)
{
if (!this.blurMaterial)
{
this.blurMaterial = new Material(this.blurShader);
}
float num = 1f / (1f * (float)(1 << this.downsample));
this.blurMaterial.SetVector("_Parameter", new Vector4(this.blurSize * num, -this.blurSize * num, 0f, 0f));
source.filterMode = FilterMode.Bilinear;
int num2 = source.width >> this.downsample;
int num3 = source.height >> this.downsample;
RenderTexture renderTexture = RenderTexture.GetTemporary(num2, num3, 0, source.format);
renderTexture.filterMode = FilterMode.Bilinear;
Graphics.Blit(source, renderTexture, this.blurMaterial, 0);
int num4 = ((this.blurType == BlurOptimized.BlurType.StandardGauss) ? 0 : 2);
for (int i = 0; i < this.blurIterations; i++)
{
float num5 = (float)i * 1f;
this.blurMaterial.SetVector("_Parameter", new Vector4(this.blurSize * num + num5, -this.blurSize * num - num5, 0f, 0f));
RenderTexture renderTexture2 = RenderTexture.GetTemporary(num2, num3, 0, source.format);
renderTexture2.filterMode = FilterMode.Bilinear;
Graphics.Blit(renderTexture, renderTexture2, this.blurMaterial, 1 + num4);
RenderTexture.ReleaseTemporary(renderTexture);
renderTexture = renderTexture2;
renderTexture2 = RenderTexture.GetTemporary(num2, num3, 0, source.format);
renderTexture2.filterMode = FilterMode.Bilinear;
Graphics.Blit(renderTexture, renderTexture2, this.blurMaterial, 2 + num4);
RenderTexture.ReleaseTemporary(renderTexture);
renderTexture = renderTexture2;
}
Graphics.Blit(renderTexture, destination);
RenderTexture.ReleaseTemporary(renderTexture);
}
// Token: 0x040026ED RID: 9965
[Range(0f, 2f)]
public int downsample = 1;
// Token: 0x040026EE RID: 9966
[Range(0f, 10f)]
public float blurSize = 3f;
// Token: 0x040026EF RID: 9967
[Range(1f, 4f)]
public int blurIterations = 2;
// Token: 0x040026F0 RID: 9968
public BlurOptimized.BlurType blurType;
// Token: 0x040026F1 RID: 9969
public Shader blurShader;
// Token: 0x040026F2 RID: 9970
private Material blurMaterial;
// Token: 0x0200026C RID: 620
public enum BlurType
{
// Token: 0x040034C9 RID: 13513
StandardGauss,
// Token: 0x040034CA RID: 13514
SgxGauss
}
}
}