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

namespace UnityStandardAssets.ImageEffects
{
	// Token: 0x020005CE RID: 1486
	public class EdgeDetection : PostEffectsBase
	{
		// Token: 0x06009BF0 RID: 39920 RVA: 0x0027F54C File Offset: 0x0027D74C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 620632, XrefRangeEnd = 620637, 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: 0x06009BF1 RID: 39921 RVA: 0x0027F5A8 File Offset: 0x0027D7A8
		[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: 0x06009BF2 RID: 39922 RVA: 0x0027F5EC File Offset: 0x0027D7EC
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 620642, RefRangeEnd = 620644, XrefRangeStart = 620637, XrefRangeEnd = 620642, 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: 0x06009BF3 RID: 39923 RVA: 0x0027F630 File Offset: 0x0027D830
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 620644, XrefRangeEnd = 620645, 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: 0x06009BF4 RID: 39924 RVA: 0x0027F674 File Offset: 0x0027D874
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 620645, XrefRangeEnd = 620669, 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: 0x06009BF5 RID: 39925 RVA: 0x0027F6E8 File Offset: 0x0027D8E8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 620669, XrefRangeEnd = 620671, 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: 0x06009BF6 RID: 39926 RVA: 0x0027F734 File Offset: 0x0027D934
		// 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, 100675333);
			EdgeDetection.NativeMethodInfoPtr_Start_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100675334);
			EdgeDetection.NativeMethodInfoPtr_SetCameraFlag_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100675335);
			EdgeDetection.NativeMethodInfoPtr_OnEnable_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100675336);
			EdgeDetection.NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100675337);
			EdgeDetection.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<EdgeDetection>.NativeClassPtr, 100675338);
		}

		// Token: 0x06009BF7 RID: 39927 RVA: 0x00275EC4 File Offset: 0x002740C4
		public EdgeDetection(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170034F2 RID: 13554
		// (get) Token: 0x06009BF8 RID: 39928 RVA: 0x0027F8B8 File Offset: 0x0027DAB8
		// (set) Token: 0x06009BF9 RID: 39929 RVA: 0x0027F8E0 File Offset: 0x0027DAE0
		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: 0x170034F3 RID: 13555
		// (get) Token: 0x06009BFA RID: 39930 RVA: 0x0027F904 File Offset: 0x0027DB04
		// (set) Token: 0x06009BFB RID: 39931 RVA: 0x0027F92C File Offset: 0x0027DB2C
		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: 0x170034F4 RID: 13556
		// (get) Token: 0x06009BFC RID: 39932 RVA: 0x0027F950 File Offset: 0x0027DB50
		// (set) Token: 0x06009BFD RID: 39933 RVA: 0x0027F978 File Offset: 0x0027DB78
		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: 0x170034F5 RID: 13557
		// (get) Token: 0x06009BFE RID: 39934 RVA: 0x0027F99C File Offset: 0x0027DB9C
		// (set) Token: 0x06009BFF RID: 39935 RVA: 0x0027F9C4 File Offset: 0x0027DBC4
		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: 0x170034F6 RID: 13558
		// (get) Token: 0x06009C00 RID: 39936 RVA: 0x0027F9E8 File Offset: 0x0027DBE8
		// (set) Token: 0x06009C01 RID: 39937 RVA: 0x0027FA10 File Offset: 0x0027DC10
		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: 0x170034F7 RID: 13559
		// (get) Token: 0x06009C02 RID: 39938 RVA: 0x0027FA34 File Offset: 0x0027DC34
		// (set) Token: 0x06009C03 RID: 39939 RVA: 0x0027FA5C File Offset: 0x0027DC5C
		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: 0x170034F8 RID: 13560
		// (get) Token: 0x06009C04 RID: 39940 RVA: 0x0027FA80 File Offset: 0x0027DC80
		// (set) Token: 0x06009C05 RID: 39941 RVA: 0x0027FAA8 File Offset: 0x0027DCA8
		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: 0x170034F9 RID: 13561
		// (get) Token: 0x06009C06 RID: 39942 RVA: 0x0027FACC File Offset: 0x0027DCCC
		// (set) Token: 0x06009C07 RID: 39943 RVA: 0x0027FAF4 File Offset: 0x0027DCF4
		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: 0x170034FA RID: 13562
		// (get) Token: 0x06009C08 RID: 39944 RVA: 0x0027FB18 File Offset: 0x0027DD18
		// (set) Token: 0x06009C09 RID: 39945 RVA: 0x0027FB4C File Offset: 0x0027DD4C
		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: 0x170034FB RID: 13563
		// (get) Token: 0x06009C0A RID: 39946 RVA: 0x0027FB74 File Offset: 0x0027DD74
		// (set) Token: 0x06009C0B RID: 39947 RVA: 0x0027FBA8 File Offset: 0x0027DDA8
		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: 0x170034FC RID: 13564
		// (get) Token: 0x06009C0C RID: 39948 RVA: 0x0027FBD0 File Offset: 0x0027DDD0
		// (set) Token: 0x06009C0D RID: 39949 RVA: 0x0027FBF8 File Offset: 0x0027DDF8
		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: 0x0400688B RID: 26763
		private static readonly IntPtr NativeFieldInfoPtr_mode;

		// Token: 0x0400688C RID: 26764
		private static readonly IntPtr NativeFieldInfoPtr_sensitivityDepth;

		// Token: 0x0400688D RID: 26765
		private static readonly IntPtr NativeFieldInfoPtr_sensitivityNormals;

		// Token: 0x0400688E RID: 26766
		private static readonly IntPtr NativeFieldInfoPtr_lumThreshold;

		// Token: 0x0400688F RID: 26767
		private static readonly IntPtr NativeFieldInfoPtr_edgeExp;

		// Token: 0x04006890 RID: 26768
		private static readonly IntPtr NativeFieldInfoPtr_sampleDist;

		// Token: 0x04006891 RID: 26769
		private static readonly IntPtr NativeFieldInfoPtr_edgesOnly;

		// Token: 0x04006892 RID: 26770
		private static readonly IntPtr NativeFieldInfoPtr_edgesOnlyBgColor;

		// Token: 0x04006893 RID: 26771
		private static readonly IntPtr NativeFieldInfoPtr_edgeDetectShader;

		// Token: 0x04006894 RID: 26772
		private static readonly IntPtr NativeFieldInfoPtr_edgeDetectMaterial;

		// Token: 0x04006895 RID: 26773
		private static readonly IntPtr NativeFieldInfoPtr_oldMode;

		// Token: 0x04006896 RID: 26774
		private static readonly IntPtr NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0;

		// Token: 0x04006897 RID: 26775
		private static readonly IntPtr NativeMethodInfoPtr_Start_Private_Void_0;

		// Token: 0x04006898 RID: 26776
		private static readonly IntPtr NativeMethodInfoPtr_SetCameraFlag_Private_Void_0;

		// Token: 0x04006899 RID: 26777
		private static readonly IntPtr NativeMethodInfoPtr_OnEnable_Private_Void_0;

		// Token: 0x0400689A RID: 26778
		private static readonly IntPtr NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0;

		// Token: 0x0400689B RID: 26779
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020005CF RID: 1487
		public enum EdgeDetectMode
		{
			// Token: 0x0400689D RID: 26781
			TriangleDepthNormals,
			// Token: 0x0400689E RID: 26782
			RobertsCrossDepthNormals,
			// Token: 0x0400689F RID: 26783
			SobelDepth,
			// Token: 0x040068A0 RID: 26784
			SobelDepthThin,
			// Token: 0x040068A1 RID: 26785
			TriangleLuminance
		}
	}
}
