using System;
using System.Runtime.InteropServices;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppSystem;

namespace UnityEngine.PostProcessing
{
	// Token: 0x0200059D RID: 1437
	[Serializable]
	public class AmbientOcclusionModel : PostProcessingModel
	{
		// Token: 0x17003551 RID: 13649
		// (get) Token: 0x06009E15 RID: 40469 RVA: 0x00289D08 File Offset: 0x00287F08
		// (set) Token: 0x06009E16 RID: 40470 RVA: 0x00289D58 File Offset: 0x00287F58
		public unsafe AmbientOcclusionModel.Settings settings
		{
			[CallerCount(0)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AmbientOcclusionModel.NativeMethodInfoPtr_get_settings_Public_get_Settings_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
			[CallerCount(0)]
			set
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				checked
				{
					IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
					*ptr = ref value;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AmbientOcclusionModel.NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}
		}

		// Token: 0x06009E17 RID: 40471 RVA: 0x00289DAC File Offset: 0x00287FAC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 648689, XrefRangeEnd = 648690, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override void Reset()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), AmbientOcclusionModel.NativeMethodInfoPtr_Reset_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009E18 RID: 40472 RVA: 0x00289DFC File Offset: 0x00287FFC
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 648692, RefRangeEnd = 648693, XrefRangeStart = 648690, XrefRangeEnd = 648692, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe AmbientOcclusionModel()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AmbientOcclusionModel.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009E19 RID: 40473 RVA: 0x00289E48 File Offset: 0x00288048
		// Note: this type is marked as 'beforefieldinit'.
		static AmbientOcclusionModel()
		{
			Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityEngine.PostProcessing", "AmbientOcclusionModel");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr);
			AmbientOcclusionModel.NativeFieldInfoPtr_m_Settings = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, "m_Settings");
			AmbientOcclusionModel.NativeMethodInfoPtr_get_settings_Public_get_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, 100675656);
			AmbientOcclusionModel.NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, 100675657);
			AmbientOcclusionModel.NativeMethodInfoPtr_Reset_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, 100675658);
			AmbientOcclusionModel.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, 100675659);
		}

		// Token: 0x06009E1A RID: 40474 RVA: 0x00289EDC File Offset: 0x002880DC
		public AmbientOcclusionModel(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003550 RID: 13648
		// (get) Token: 0x06009E1B RID: 40475 RVA: 0x00289EE8 File Offset: 0x002880E8
		// (set) Token: 0x06009E1C RID: 40476 RVA: 0x00289F10 File Offset: 0x00288110
		public unsafe AmbientOcclusionModel.Settings m_Settings
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AmbientOcclusionModel.NativeFieldInfoPtr_m_Settings);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(AmbientOcclusionModel.NativeFieldInfoPtr_m_Settings)) = value;
			}
		}

		// Token: 0x0400696C RID: 26988
		private static readonly IntPtr NativeFieldInfoPtr_m_Settings;

		// Token: 0x0400696D RID: 26989
		private static readonly IntPtr NativeMethodInfoPtr_get_settings_Public_get_Settings_0;

		// Token: 0x0400696E RID: 26990
		private static readonly IntPtr NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0;

		// Token: 0x0400696F RID: 26991
		private static readonly IntPtr NativeMethodInfoPtr_Reset_Public_Virtual_Void_0;

		// Token: 0x04006970 RID: 26992
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x0200059E RID: 1438
		public enum SampleCount
		{
			// Token: 0x04006972 RID: 26994
			Lowest = 3,
			// Token: 0x04006973 RID: 26995
			Low = 6,
			// Token: 0x04006974 RID: 26996
			Medium = 10,
			// Token: 0x04006975 RID: 26997
			High = 16
		}

		// Token: 0x0200059F RID: 1439
		[Serializable]
		[StructLayout(2)]
		public struct Settings
		{
			// Token: 0x17003552 RID: 13650
			// (get) Token: 0x06009E1D RID: 40477 RVA: 0x00289F34 File Offset: 0x00288134
			public unsafe static AmbientOcclusionModel.Settings defaultSettings
			{
				[CallerCount(2)]
				[CachedScanResults(RefRangeStart = 648687, RefRangeEnd = 648689, XrefRangeStart = 648687, XrefRangeEnd = 648687, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(AmbientOcclusionModel.Settings.NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0, 0, (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					return *IL2CPP.il2cpp_object_unbox(intPtr);
				}
			}

			// Token: 0x06009E1E RID: 40478 RVA: 0x00289F78 File Offset: 0x00288178
			// Note: this type is marked as 'beforefieldinit'.
			static Settings()
			{
				Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, "Settings");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr);
				AmbientOcclusionModel.Settings.NativeFieldInfoPtr_intensity = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, "intensity");
				AmbientOcclusionModel.Settings.NativeFieldInfoPtr_radius = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, "radius");
				AmbientOcclusionModel.Settings.NativeFieldInfoPtr_sampleCount = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, "sampleCount");
				AmbientOcclusionModel.Settings.NativeFieldInfoPtr_downsampling = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, "downsampling");
				AmbientOcclusionModel.Settings.NativeFieldInfoPtr_forceForwardCompatibility = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, "forceForwardCompatibility");
				AmbientOcclusionModel.Settings.NativeFieldInfoPtr_ambientOnly = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, "ambientOnly");
				AmbientOcclusionModel.Settings.NativeFieldInfoPtr_highPrecision = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, "highPrecision");
				AmbientOcclusionModel.Settings.NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, 100675660);
			}

			// Token: 0x06009E1F RID: 40479 RVA: 0x0028A043 File Offset: 0x00288243
			public Object BoxIl2CppObject()
			{
				return new Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, ref this));
			}

			// Token: 0x04006976 RID: 26998
			private static readonly IntPtr NativeFieldInfoPtr_intensity;

			// Token: 0x04006977 RID: 26999
			private static readonly IntPtr NativeFieldInfoPtr_radius;

			// Token: 0x04006978 RID: 27000
			private static readonly IntPtr NativeFieldInfoPtr_sampleCount;

			// Token: 0x04006979 RID: 27001
			private static readonly IntPtr NativeFieldInfoPtr_downsampling;

			// Token: 0x0400697A RID: 27002
			private static readonly IntPtr NativeFieldInfoPtr_forceForwardCompatibility;

			// Token: 0x0400697B RID: 27003
			private static readonly IntPtr NativeFieldInfoPtr_ambientOnly;

			// Token: 0x0400697C RID: 27004
			private static readonly IntPtr NativeFieldInfoPtr_highPrecision;

			// Token: 0x0400697D RID: 27005
			private static readonly IntPtr NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0;

			// Token: 0x0400697E RID: 27006
			[FieldOffset(0)]
			public float intensity;

			// Token: 0x0400697F RID: 27007
			[FieldOffset(4)]
			public float radius;

			// Token: 0x04006980 RID: 27008
			[FieldOffset(8)]
			public AmbientOcclusionModel.SampleCount sampleCount;

			// Token: 0x04006981 RID: 27009
			[FieldOffset(12)]
			[MarshalAs(4)]
			public bool downsampling;

			// Token: 0x04006982 RID: 27010
			[FieldOffset(13)]
			[MarshalAs(4)]
			public bool forceForwardCompatibility;

			// Token: 0x04006983 RID: 27011
			[FieldOffset(14)]
			[MarshalAs(4)]
			public bool ambientOnly;

			// Token: 0x04006984 RID: 27012
			[FieldOffset(15)]
			[MarshalAs(4)]
			public bool highPrecision;
		}
	}
}
