using System;
using Cpp2IlInjected;
using UnityEngine;

namespace UnityStandardAssets.ImageEffects
{
	// Token: 0x020005AD RID: 1453
	[Token(Token = "0x20005AD")]
	[ExecuteInEditMode]
	[RequireComponent(typeof(Camera))]
	[AddComponentMenu("Image Effects/Camera/Depth of Field (Lens Blur, Scatter, DX11)")]
	public class DepthOfField : PostEffectsBase
	{
		// Token: 0x06002EEB RID: 12011 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002EEB")]
		[Address(RVA = "0x13CD0C0", Offset = "0x13CBEC0", VA = "0x1813CD0C0", Slot = "4")]
		public override bool CheckResources()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002EEC RID: 12012 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002EEC")]
		[Address(RVA = "0x13CD7A0", Offset = "0x13CC5A0", VA = "0x1813CD7A0")]
		private void OnEnable()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002EED RID: 12013 RVA: 0x00064170 File Offset: 0x00062370
		[Token(Token = "0x6002EED")]
		[Address(RVA = "0x13CD630", Offset = "0x13CC430", VA = "0x1813CD630")]
		private void OnDisable()
		{
			/*
An exception occurred when decompiling this method (06002EED)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UnityStandardAssets.ImageEffects.DepthOfField::OnDisable()

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	IL_68:; 	stfld:Material(DepthOfField::dx11bokehMaterial, ldloc:DepthOfField(this), ldloc:int32[exp:Material](var_1_12)); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x06002EEE RID: 12014 RVA: 0x000641EC File Offset: 0x000623EC
		[Token(Token = "0x6002EEE")]
		[Address(RVA = "0x13CF3E0", Offset = "0x13CE1E0", VA = "0x1813CF3E0")]
		private void ReleaseComputeResources()
		{
			/*
An exception occurred when decompiling this method (06002EEE)

ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void UnityStandardAssets.ImageEffects.DepthOfField::ReleaseComputeResources()

 ---> System.Exception: Basic block has to end with unconditional control flow. 
{; 	IL_2B:; 	stfld:ComputeBuffer(DepthOfField::cbPoints, ldloc:DepthOfField(this), conv.u8:uint64[exp:ComputeBuffer](ldc.i8:int64[exp:uint64](0))); }; 
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1810
   at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 344
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
   --- End of inner exception stack trace ---
   at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
   at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1618
*/;
		}

		// Token: 0x06002EEF RID: 12015 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002EEF")]
		[Address(RVA = "0x13CD2E0", Offset = "0x13CC0E0", VA = "0x1813CD2E0")]
		private void CreateComputeResources()
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002EF0 RID: 12016 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002EF0")]
		[Address(RVA = "0x13CD480", Offset = "0x13CC280", VA = "0x1813CD480")]
		private float FocalDistance01(float worldDist)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002EF1 RID: 12017 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002EF1")]
		[Address(RVA = "0x13CF450", Offset = "0x13CE250", VA = "0x1813CF450")]
		private void WriteCoc(RenderTexture fromTo, bool fgDilate)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002EF2 RID: 12018 RVA: 0x000020D3 File Offset: 0x000002D3
		[Token(Token = "0x6002EF2")]
		[Address(RVA = "0x13CD820", Offset = "0x13CC620", VA = "0x1813CD820")]
		private void OnRenderImage(RenderTexture source, RenderTexture destination)
		{
			throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
		}

		// Token: 0x06002EF3 RID: 12019 RVA: 0x0006422C File Offset: 0x0006242C
		[Token(Token = "0x6002EF3")]
		[Address(RVA = "0x13CF7B0", Offset = "0x13CE5B0", VA = "0x1813CF7B0")]
		public DepthOfField()
		{
		}

		// Token: 0x0400387A RID: 14458
		[FieldOffset(Offset = "0x28")]
		[Token(Token = "0x400387A")]
		public bool visualizeFocus;

		// Token: 0x0400387B RID: 14459
		[FieldOffset(Offset = "0x2C")]
		[Token(Token = "0x400387B")]
		public float focalLength = 10f;

		// Token: 0x0400387C RID: 14460
		[FieldOffset(Offset = "0x30")]
		[Token(Token = "0x400387C")]
		public float focalSize = 0.05f;

		// Token: 0x0400387D RID: 14461
		[FieldOffset(Offset = "0x34")]
		[Token(Token = "0x400387D")]
		public float aperture = 0.5f;

		// Token: 0x0400387E RID: 14462
		[FieldOffset(Offset = "0x38")]
		[Token(Token = "0x400387E")]
		public Transform focalTransform;

		// Token: 0x0400387F RID: 14463
		[FieldOffset(Offset = "0x40")]
		[Token(Token = "0x400387F")]
		public float maxBlurSize = 2f;

		// Token: 0x04003880 RID: 14464
		[FieldOffset(Offset = "0x44")]
		[Token(Token = "0x4003880")]
		public bool highResolution;

		// Token: 0x04003881 RID: 14465
		[FieldOffset(Offset = "0x48")]
		[Token(Token = "0x4003881")]
		public DepthOfField.BlurType blurType;

		// Token: 0x04003882 RID: 14466
		[FieldOffset(Offset = "0x4C")]
		[Token(Token = "0x4003882")]
		public DepthOfField.BlurSampleCount blurSampleCount = (DepthOfField.BlurSampleCount)((ulong)2L);

		// Token: 0x04003883 RID: 14467
		[FieldOffset(Offset = "0x50")]
		[Token(Token = "0x4003883")]
		public bool nearBlur;

		// Token: 0x04003884 RID: 14468
		[FieldOffset(Offset = "0x54")]
		[Token(Token = "0x4003884")]
		public float foregroundOverlap = 1f;

		// Token: 0x04003885 RID: 14469
		[FieldOffset(Offset = "0x58")]
		[Token(Token = "0x4003885")]
		public Shader dofHdrShader;

		// Token: 0x04003886 RID: 14470
		[FieldOffset(Offset = "0x60")]
		[Token(Token = "0x4003886")]
		private Material dofHdrMaterial;

		// Token: 0x04003887 RID: 14471
		[FieldOffset(Offset = "0x68")]
		[Token(Token = "0x4003887")]
		public Shader dx11BokehShader;

		// Token: 0x04003888 RID: 14472
		[FieldOffset(Offset = "0x70")]
		[Token(Token = "0x4003888")]
		private Material dx11bokehMaterial;

		// Token: 0x04003889 RID: 14473
		[FieldOffset(Offset = "0x78")]
		[Token(Token = "0x4003889")]
		public float dx11BokehThreshold = 0.5f;

		// Token: 0x0400388A RID: 14474
		[FieldOffset(Offset = "0x7C")]
		[Token(Token = "0x400388A")]
		public float dx11SpawnHeuristic = 0.0875f;

		// Token: 0x0400388B RID: 14475
		[FieldOffset(Offset = "0x80")]
		[Token(Token = "0x400388B")]
		public Texture2D dx11BokehTexture;

		// Token: 0x0400388C RID: 14476
		[FieldOffset(Offset = "0x88")]
		[Token(Token = "0x400388C")]
		public float dx11BokehScale = 1.2f;

		// Token: 0x0400388D RID: 14477
		[FieldOffset(Offset = "0x8C")]
		[Token(Token = "0x400388D")]
		public float dx11BokehIntensity = 2.5f;

		// Token: 0x0400388E RID: 14478
		[FieldOffset(Offset = "0x90")]
		[Token(Token = "0x400388E")]
		private float focalDistance01 = 10f;

		// Token: 0x0400388F RID: 14479
		[FieldOffset(Offset = "0x98")]
		[Token(Token = "0x400388F")]
		private ComputeBuffer cbDrawArgs;

		// Token: 0x04003890 RID: 14480
		[FieldOffset(Offset = "0xA0")]
		[Token(Token = "0x4003890")]
		private ComputeBuffer cbPoints;

		// Token: 0x04003891 RID: 14481
		[FieldOffset(Offset = "0xA8")]
		[Token(Token = "0x4003891")]
		private float internalBlurWidth = 1f;

		// Token: 0x04003892 RID: 14482
		[FieldOffset(Offset = "0xB0")]
		[Token(Token = "0x4003892")]
		private Camera cachedCamera;

		// Token: 0x020005AE RID: 1454
		[Token(Token = "0x20005AE")]
		public enum BlurType
		{
			// Token: 0x04003894 RID: 14484
			[Token(Token = "0x4003894")]
			DiscBlur,
			// Token: 0x04003895 RID: 14485
			[Token(Token = "0x4003895")]
			DX11
		}

		// Token: 0x020005AF RID: 1455
		[Token(Token = "0x20005AF")]
		public enum BlurSampleCount
		{
			// Token: 0x04003897 RID: 14487
			[Token(Token = "0x4003897")]
			Low,
			// Token: 0x04003898 RID: 14488
			[Token(Token = "0x4003898")]
			Medium,
			// Token: 0x04003899 RID: 14489
			[Token(Token = "0x4003899")]
			High
		}
	}
}
