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

namespace UnityEngine.PostProcessing
{
	// Token: 0x02000545 RID: 1349
	[Serializable]
	public class AmbientOcclusionModel : PostProcessingModel
	{
		// Token: 0x170032B6 RID: 12982
		// (get) Token: 0x060095C2 RID: 38338 RVA: 0x00266FCC File Offset: 0x002651CC
		// (set) Token: 0x060095C3 RID: 38339 RVA: 0x0026701C File Offset: 0x0026521C
		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: 0x060095C4 RID: 38340 RVA: 0x00267070 File Offset: 0x00265270
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 616379, XrefRangeEnd = 616380, 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: 0x060095C5 RID: 38341 RVA: 0x002670C0 File Offset: 0x002652C0
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 616382, RefRangeEnd = 616383, XrefRangeStart = 616380, XrefRangeEnd = 616382, 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: 0x060095C6 RID: 38342 RVA: 0x0026710C File Offset: 0x0026530C
		// 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, 100674943);
			AmbientOcclusionModel.NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, 100674944);
			AmbientOcclusionModel.NativeMethodInfoPtr_Reset_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, 100674945);
			AmbientOcclusionModel.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<AmbientOcclusionModel>.NativeClassPtr, 100674946);
		}

		// Token: 0x060095C7 RID: 38343 RVA: 0x002671A0 File Offset: 0x002653A0
		public AmbientOcclusionModel(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170032B5 RID: 12981
		// (get) Token: 0x060095C8 RID: 38344 RVA: 0x002671AC File Offset: 0x002653AC
		// (set) Token: 0x060095C9 RID: 38345 RVA: 0x002671D4 File Offset: 0x002653D4
		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: 0x040063C3 RID: 25539
		private static readonly IntPtr NativeFieldInfoPtr_m_Settings;

		// Token: 0x040063C4 RID: 25540
		private static readonly IntPtr NativeMethodInfoPtr_get_settings_Public_get_Settings_0;

		// Token: 0x040063C5 RID: 25541
		private static readonly IntPtr NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0;

		// Token: 0x040063C6 RID: 25542
		private static readonly IntPtr NativeMethodInfoPtr_Reset_Public_Virtual_Void_0;

		// Token: 0x040063C7 RID: 25543
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000546 RID: 1350
		public enum SampleCount
		{
			// Token: 0x040063C9 RID: 25545
			Lowest = 3,
			// Token: 0x040063CA RID: 25546
			Low = 6,
			// Token: 0x040063CB RID: 25547
			Medium = 10,
			// Token: 0x040063CC RID: 25548
			High = 16
		}

		// Token: 0x02000547 RID: 1351
		[Serializable]
		[StructLayout(LayoutKind.Explicit)]
		public struct Settings
		{
			// Token: 0x170032B7 RID: 12983
			// (get) Token: 0x060095CA RID: 38346 RVA: 0x002671F8 File Offset: 0x002653F8
			public unsafe static AmbientOcclusionModel.Settings defaultSettings
			{
				[CallerCount(2)]
				[CachedScanResults(RefRangeStart = 616377, RefRangeEnd = 616379, XrefRangeStart = 616377, XrefRangeEnd = 616377, 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: 0x060095CB RID: 38347 RVA: 0x0026723C File Offset: 0x0026543C
			// 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, 100674947);
			}

			// Token: 0x060095CC RID: 38348 RVA: 0x00267307 File Offset: 0x00265507
			public Object BoxIl2CppObject()
			{
				return new Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<AmbientOcclusionModel.Settings>.NativeClassPtr, ref this));
			}

			// Token: 0x040063CD RID: 25549
			private static readonly IntPtr NativeFieldInfoPtr_intensity;

			// Token: 0x040063CE RID: 25550
			private static readonly IntPtr NativeFieldInfoPtr_radius;

			// Token: 0x040063CF RID: 25551
			private static readonly IntPtr NativeFieldInfoPtr_sampleCount;

			// Token: 0x040063D0 RID: 25552
			private static readonly IntPtr NativeFieldInfoPtr_downsampling;

			// Token: 0x040063D1 RID: 25553
			private static readonly IntPtr NativeFieldInfoPtr_forceForwardCompatibility;

			// Token: 0x040063D2 RID: 25554
			private static readonly IntPtr NativeFieldInfoPtr_ambientOnly;

			// Token: 0x040063D3 RID: 25555
			private static readonly IntPtr NativeFieldInfoPtr_highPrecision;

			// Token: 0x040063D4 RID: 25556
			private static readonly IntPtr NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0;

			// Token: 0x040063D5 RID: 25557
			[FieldOffset(0)]
			public float intensity;

			// Token: 0x040063D6 RID: 25558
			[FieldOffset(4)]
			public float radius;

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

			// Token: 0x040063D8 RID: 25560
			[FieldOffset(12)]
			[MarshalAs(UnmanagedType.U1)]
			public bool downsampling;

			// Token: 0x040063D9 RID: 25561
			[FieldOffset(13)]
			[MarshalAs(UnmanagedType.U1)]
			public bool forceForwardCompatibility;

			// Token: 0x040063DA RID: 25562
			[FieldOffset(14)]
			[MarshalAs(UnmanagedType.U1)]
			public bool ambientOnly;

			// Token: 0x040063DB RID: 25563
			[FieldOffset(15)]
			[MarshalAs(UnmanagedType.U1)]
			public bool highPrecision;
		}
	}
}
