using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using UnityEngine;

namespace UnityStandardAssets.ImageEffects
{
	// Token: 0x02000626 RID: 1574
	public class EdgeDetection : PostEffectsBase
	{
		// Token: 0x0600A443 RID: 42051 RVA: 0x002A2288 File Offset: 0x002A0488
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 652934, XrefRangeEnd = 652939, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override bool CheckResources()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), EdgeDetection.NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A444 RID: 42052 RVA: 0x002A22E4 File Offset: 0x002A04E4
		[CallerCount(0)]
		public new unsafe void Start()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EdgeDetection.NativeMethodInfoPtr_Start_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A445 RID: 42053 RVA: 0x002A2328 File Offset: 0x002A0528
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 652944, RefRangeEnd = 652946, XrefRangeStart = 652939, XrefRangeEnd = 652944, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void SetCameraFlag()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EdgeDetection.NativeMethodInfoPtr_SetCameraFlag_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A446 RID: 42054 RVA: 0x002A236C File Offset: 0x002A056C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 652946, XrefRangeEnd = 652947, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public new unsafe void OnEnable()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EdgeDetection.NativeMethodInfoPtr_OnEnable_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A447 RID: 42055 RVA: 0x002A23B0 File Offset: 0x002A05B0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 652947, XrefRangeEnd = 652971, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnRenderImage(RenderTexture source, RenderTexture destination)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(source);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(destination);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EdgeDetection.NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A448 RID: 42056 RVA: 0x002A2424 File Offset: 0x002A0624
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 652971, XrefRangeEnd = 652973, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe EdgeDetection()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(EdgeDetection.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A449 RID: 42057 RVA: 0x002A2470 File Offset: 0x002A0670
		// Note: this type is marked as 'beforefieldinit'.
		static EdgeDetection()
		{
			Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityStandardAssets.ImageEffects", "EdgeDetection");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr);
			EdgeDetection.NativeFieldInfoPtr_mode = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "mode");
			EdgeDetection.NativeFieldInfoPtr_sensitivityDepth = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "sensitivityDepth");
			EdgeDetection.NativeFieldInfoPtr_sensitivityNormals = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "sensitivityNormals");
			EdgeDetection.NativeFieldInfoPtr_lumThreshold = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "lumThreshold");
			EdgeDetection.NativeFieldInfoPtr_edgeExp = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "edgeExp");
			EdgeDetection.NativeFieldInfoPtr_sampleDist = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "sampleDist");
			EdgeDetection.NativeFieldInfoPtr_edgesOnly = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "edgesOnly");
			EdgeDetection.NativeFieldInfoPtr_edgesOnlyBgColor = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "edgesOnlyBgColor");
			EdgeDetection.NativeFieldInfoPtr_edgeDetectShader = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "edgeDetectShader");
			EdgeDetection.NativeFieldInfoPtr_edgeDetectMaterial = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "edgeDetectMaterial");
			EdgeDetection.NativeFieldInfoPtr_oldMode = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, "oldMode");
			EdgeDetection.NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100676046);
			EdgeDetection.NativeMethodInfoPtr_Start_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100676047);
			EdgeDetection.NativeMethodInfoPtr_SetCameraFlag_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100676048);
			EdgeDetection.NativeMethodInfoPtr_OnEnable_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100676049);
			EdgeDetection.NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100676050);
			EdgeDetection.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100676051);
		}

		// Token: 0x0600A44A RID: 42058 RVA: 0x00298C00 File Offset: 0x00296E00
		public EdgeDetection(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x1700378D RID: 14221
		// (get) Token: 0x0600A44B RID: 42059 RVA: 0x002A25F4 File Offset: 0x002A07F4
		// (set) Token: 0x0600A44C RID: 42060 RVA: 0x002A261C File Offset: 0x002A081C
		public unsafe EdgeDetection.EdgeDetectMode mode
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_mode);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_mode)) = value;
			}
		}

		// Token: 0x1700378E RID: 14222
		// (get) Token: 0x0600A44D RID: 42061 RVA: 0x002A2640 File Offset: 0x002A0840
		// (set) Token: 0x0600A44E RID: 42062 RVA: 0x002A2668 File Offset: 0x002A0868
		public unsafe float sensitivityDepth
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_sensitivityDepth);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_sensitivityDepth)) = value;
			}
		}

		// Token: 0x1700378F RID: 14223
		// (get) Token: 0x0600A44F RID: 42063 RVA: 0x002A268C File Offset: 0x002A088C
		// (set) Token: 0x0600A450 RID: 42064 RVA: 0x002A26B4 File Offset: 0x002A08B4
		public unsafe float sensitivityNormals
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_sensitivityNormals);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_sensitivityNormals)) = value;
			}
		}

		// Token: 0x17003790 RID: 14224
		// (get) Token: 0x0600A451 RID: 42065 RVA: 0x002A26D8 File Offset: 0x002A08D8
		// (set) Token: 0x0600A452 RID: 42066 RVA: 0x002A2700 File Offset: 0x002A0900
		public unsafe float lumThreshold
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_lumThreshold);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_lumThreshold)) = value;
			}
		}

		// Token: 0x17003791 RID: 14225
		// (get) Token: 0x0600A453 RID: 42067 RVA: 0x002A2724 File Offset: 0x002A0924
		// (set) Token: 0x0600A454 RID: 42068 RVA: 0x002A274C File Offset: 0x002A094C
		public unsafe float edgeExp
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgeExp);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgeExp)) = value;
			}
		}

		// Token: 0x17003792 RID: 14226
		// (get) Token: 0x0600A455 RID: 42069 RVA: 0x002A2770 File Offset: 0x002A0970
		// (set) Token: 0x0600A456 RID: 42070 RVA: 0x002A2798 File Offset: 0x002A0998
		public unsafe float sampleDist
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_sampleDist);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_sampleDist)) = value;
			}
		}

		// Token: 0x17003793 RID: 14227
		// (get) Token: 0x0600A457 RID: 42071 RVA: 0x002A27BC File Offset: 0x002A09BC
		// (set) Token: 0x0600A458 RID: 42072 RVA: 0x002A27E4 File Offset: 0x002A09E4
		public unsafe float edgesOnly
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgesOnly);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgesOnly)) = value;
			}
		}

		// Token: 0x17003794 RID: 14228
		// (get) Token: 0x0600A459 RID: 42073 RVA: 0x002A2808 File Offset: 0x002A0A08
		// (set) Token: 0x0600A45A RID: 42074 RVA: 0x002A2830 File Offset: 0x002A0A30
		public unsafe Color edgesOnlyBgColor
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgesOnlyBgColor);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgesOnlyBgColor)) = value;
			}
		}

		// Token: 0x17003795 RID: 14229
		// (get) Token: 0x0600A45B RID: 42075 RVA: 0x002A2854 File Offset: 0x002A0A54
		// (set) Token: 0x0600A45C RID: 42076 RVA: 0x002A2888 File Offset: 0x002A0A88
		public unsafe Shader edgeDetectShader
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgeDetectShader);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Shader(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgeDetectShader), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003796 RID: 14230
		// (get) Token: 0x0600A45D RID: 42077 RVA: 0x002A28B0 File Offset: 0x002A0AB0
		// (set) Token: 0x0600A45E RID: 42078 RVA: 0x002A28E4 File Offset: 0x002A0AE4
		public unsafe Material edgeDetectMaterial
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgeDetectMaterial);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Material(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_edgeDetectMaterial), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003797 RID: 14231
		// (get) Token: 0x0600A45F RID: 42079 RVA: 0x002A290C File Offset: 0x002A0B0C
		// (set) Token: 0x0600A460 RID: 42080 RVA: 0x002A2934 File Offset: 0x002A0B34
		public unsafe EdgeDetection.EdgeDetectMode oldMode
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_oldMode);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(EdgeDetection.NativeFieldInfoPtr_oldMode)) = value;
			}
		}

		// Token: 0x04006E34 RID: 28212
		private static readonly IntPtr NativeFieldInfoPtr_mode;

		// Token: 0x04006E35 RID: 28213
		private static readonly IntPtr NativeFieldInfoPtr_sensitivityDepth;

		// Token: 0x04006E36 RID: 28214
		private static readonly IntPtr NativeFieldInfoPtr_sensitivityNormals;

		// Token: 0x04006E37 RID: 28215
		private static readonly IntPtr NativeFieldInfoPtr_lumThreshold;

		// Token: 0x04006E38 RID: 28216
		private static readonly IntPtr NativeFieldInfoPtr_edgeExp;

		// Token: 0x04006E39 RID: 28217
		private static readonly IntPtr NativeFieldInfoPtr_sampleDist;

		// Token: 0x04006E3A RID: 28218
		private static readonly IntPtr NativeFieldInfoPtr_edgesOnly;

		// Token: 0x04006E3B RID: 28219
		private static readonly IntPtr NativeFieldInfoPtr_edgesOnlyBgColor;

		// Token: 0x04006E3C RID: 28220
		private static readonly IntPtr NativeFieldInfoPtr_edgeDetectShader;

		// Token: 0x04006E3D RID: 28221
		private static readonly IntPtr NativeFieldInfoPtr_edgeDetectMaterial;

		// Token: 0x04006E3E RID: 28222
		private static readonly IntPtr NativeFieldInfoPtr_oldMode;

		// Token: 0x04006E3F RID: 28223
		private static readonly IntPtr NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0;

		// Token: 0x04006E40 RID: 28224
		private static readonly IntPtr NativeMethodInfoPtr_Start_Private_Void_0;

		// Token: 0x04006E41 RID: 28225
		private static readonly IntPtr NativeMethodInfoPtr_SetCameraFlag_Private_Void_0;

		// Token: 0x04006E42 RID: 28226
		private static readonly IntPtr NativeMethodInfoPtr_OnEnable_Private_Void_0;

		// Token: 0x04006E43 RID: 28227
		private static readonly IntPtr NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0;

		// Token: 0x04006E44 RID: 28228
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000627 RID: 1575
		public enum EdgeDetectMode
		{
			// Token: 0x04006E46 RID: 28230
			TriangleDepthNormals,
			// Token: 0x04006E47 RID: 28231
			RobertsCrossDepthNormals,
			// Token: 0x04006E48 RID: 28232
			SobelDepth,
			// Token: 0x04006E49 RID: 28233
			SobelDepthThin,
			// Token: 0x04006E4A RID: 28234
			TriangleLuminance
		}
	}
}
