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

namespace UnityEngine.PostProcessing
{
	// Token: 0x020005C1 RID: 1473
	[Serializable]
	public class DitheringModel : PostProcessingModel
	{
		// Token: 0x17003593 RID: 13715
		// (get) Token: 0x06009ED3 RID: 40659 RVA: 0x0028CD60 File Offset: 0x0028AF60
		// (set) Token: 0x06009ED4 RID: 40660 RVA: 0x0028CDB0 File Offset: 0x0028AFB0
		public unsafe DitheringModel.Settings settings
		{
			[CallerCount(0)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(DitheringModel.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(DitheringModel.NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}
		}

		// Token: 0x06009ED5 RID: 40661 RVA: 0x0028CE04 File Offset: 0x0028B004
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 648847, XrefRangeEnd = 648848, 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), DitheringModel.NativeMethodInfoPtr_Reset_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009ED6 RID: 40662 RVA: 0x0028CE54 File Offset: 0x0028B054
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 648850, RefRangeEnd = 648851, XrefRangeStart = 648848, XrefRangeEnd = 648850, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe DitheringModel()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(DitheringModel.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009ED7 RID: 40663 RVA: 0x0028CEA0 File Offset: 0x0028B0A0
		// Note: this type is marked as 'beforefieldinit'.
		static DitheringModel()
		{
			Il2CppClassPointerStore<DitheringModel>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityEngine.PostProcessing", "DitheringModel");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr);
			DitheringModel.NativeFieldInfoPtr_m_Settings = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr, "m_Settings");
			DitheringModel.NativeMethodInfoPtr_get_settings_Public_get_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr, 100675715);
			DitheringModel.NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr, 100675716);
			DitheringModel.NativeMethodInfoPtr_Reset_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr, 100675717);
			DitheringModel.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr, 100675718);
		}

		// Token: 0x06009ED8 RID: 40664 RVA: 0x00289EDC File Offset: 0x002880DC
		public DitheringModel(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003592 RID: 13714
		// (get) Token: 0x06009ED9 RID: 40665 RVA: 0x0028CF34 File Offset: 0x0028B134
		// (set) Token: 0x06009EDA RID: 40666 RVA: 0x0028CF5C File Offset: 0x0028B15C
		public unsafe DitheringModel.Settings m_Settings
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(DitheringModel.NativeFieldInfoPtr_m_Settings);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(DitheringModel.NativeFieldInfoPtr_m_Settings)) = value;
			}
		}

		// Token: 0x04006A75 RID: 27253
		private static readonly IntPtr NativeFieldInfoPtr_m_Settings;

		// Token: 0x04006A76 RID: 27254
		private static readonly IntPtr NativeMethodInfoPtr_get_settings_Public_get_Settings_0;

		// Token: 0x04006A77 RID: 27255
		private static readonly IntPtr NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0;

		// Token: 0x04006A78 RID: 27256
		private static readonly IntPtr NativeMethodInfoPtr_Reset_Public_Virtual_Void_0;

		// Token: 0x04006A79 RID: 27257
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020005C2 RID: 1474
		[Serializable]
		[StructLayout(2)]
		public struct Settings
		{
			// Token: 0x17003594 RID: 13716
			// (get) Token: 0x06009EDB RID: 40667 RVA: 0x0028CF80 File Offset: 0x0028B180
			public unsafe static DitheringModel.Settings defaultSettings
			{
				[CallerCount(88)]
				[CachedScanResults(RefRangeStart = 20730, RefRangeEnd = 20818, XrefRangeStart = 20730, XrefRangeEnd = 20818, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(DitheringModel.Settings.NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0, 0, (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					return *IL2CPP.il2cpp_object_unbox(intPtr);
				}
			}

			// Token: 0x06009EDC RID: 40668 RVA: 0x0028CFC1 File Offset: 0x0028B1C1
			// Note: this type is marked as 'beforefieldinit'.
			static Settings()
			{
				Il2CppClassPointerStore<DitheringModel.Settings>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<DitheringModel>.NativeClassPtr, "Settings");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<DitheringModel.Settings>.NativeClassPtr);
				DitheringModel.Settings.NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<DitheringModel.Settings>.NativeClassPtr, 100675719);
			}

			// Token: 0x06009EDD RID: 40669 RVA: 0x0028CFF5 File Offset: 0x0028B1F5
			public Object BoxIl2CppObject()
			{
				return new Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<DitheringModel.Settings>.NativeClassPtr, ref this));
			}

			// Token: 0x04006A7A RID: 27258
			private static readonly IntPtr NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0;
		}
	}
}
