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

namespace UnityEngine.PostProcessing
{
	// Token: 0x020005C8 RID: 1480
	[Serializable]
	public class GrainModel : PostProcessingModel
	{
		// Token: 0x1700359C RID: 13724
		// (get) Token: 0x06009EF4 RID: 40692 RVA: 0x0028D668 File Offset: 0x0028B868
		// (set) Token: 0x06009EF5 RID: 40693 RVA: 0x0028D6B8 File Offset: 0x0028B8B8
		public unsafe GrainModel.Settings settings
		{
			[CallerCount(0)]
			get
			{
				IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IntPtr* ptr = null;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GrainModel.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(GrainModel.NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				}
			}
		}

		// Token: 0x06009EF6 RID: 40694 RVA: 0x0028D70C File Offset: 0x0028B90C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 648863, XrefRangeEnd = 648864, 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), GrainModel.NativeMethodInfoPtr_Reset_Public_Virtual_Void_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009EF7 RID: 40695 RVA: 0x0028D75C File Offset: 0x0028B95C
		[CallerCount(1)]
		[CachedScanResults(RefRangeStart = 648866, RefRangeEnd = 648867, XrefRangeStart = 648864, XrefRangeEnd = 648866, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe GrainModel()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<GrainModel>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GrainModel.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x06009EF8 RID: 40696 RVA: 0x0028D7A8 File Offset: 0x0028B9A8
		// Note: this type is marked as 'beforefieldinit'.
		static GrainModel()
		{
			Il2CppClassPointerStore<GrainModel>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityEngine.PostProcessing", "GrainModel");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<GrainModel>.NativeClassPtr);
			GrainModel.NativeFieldInfoPtr_m_Settings = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GrainModel>.NativeClassPtr, "m_Settings");
			GrainModel.NativeMethodInfoPtr_get_settings_Public_get_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GrainModel>.NativeClassPtr, 100675730);
			GrainModel.NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GrainModel>.NativeClassPtr, 100675731);
			GrainModel.NativeMethodInfoPtr_Reset_Public_Virtual_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GrainModel>.NativeClassPtr, 100675732);
			GrainModel.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GrainModel>.NativeClassPtr, 100675733);
		}

		// Token: 0x06009EF9 RID: 40697 RVA: 0x00289EDC File Offset: 0x002880DC
		public GrainModel(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x1700359B RID: 13723
		// (get) Token: 0x06009EFA RID: 40698 RVA: 0x0028D83C File Offset: 0x0028BA3C
		// (set) Token: 0x06009EFB RID: 40699 RVA: 0x0028D864 File Offset: 0x0028BA64
		public unsafe GrainModel.Settings m_Settings
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GrainModel.NativeFieldInfoPtr_m_Settings);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(GrainModel.NativeFieldInfoPtr_m_Settings)) = value;
			}
		}

		// Token: 0x04006AA2 RID: 27298
		private static readonly IntPtr NativeFieldInfoPtr_m_Settings;

		// Token: 0x04006AA3 RID: 27299
		private static readonly IntPtr NativeMethodInfoPtr_get_settings_Public_get_Settings_0;

		// Token: 0x04006AA4 RID: 27300
		private static readonly IntPtr NativeMethodInfoPtr_set_settings_Public_set_Void_Settings_0;

		// Token: 0x04006AA5 RID: 27301
		private static readonly IntPtr NativeMethodInfoPtr_Reset_Public_Virtual_Void_0;

		// Token: 0x04006AA6 RID: 27302
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x020005C9 RID: 1481
		[Serializable]
		[StructLayout(2)]
		public struct Settings
		{
			// Token: 0x1700359D RID: 13725
			// (get) Token: 0x06009EFC RID: 40700 RVA: 0x0028D888 File Offset: 0x0028BA88
			public unsafe static GrainModel.Settings defaultSettings
			{
				[CallerCount(2)]
				[CachedScanResults(RefRangeStart = 648861, RefRangeEnd = 648863, XrefRangeStart = 648861, XrefRangeEnd = 648861, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
				get
				{
					IntPtr* ptr = null;
					IntPtr intPtr2;
					IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(GrainModel.Settings.NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0, 0, (void**)ptr, ref intPtr2);
					Il2CppException.RaiseExceptionIfNecessary(intPtr2);
					return *IL2CPP.il2cpp_object_unbox(intPtr);
				}
			}

			// Token: 0x06009EFD RID: 40701 RVA: 0x0028D8CC File Offset: 0x0028BACC
			// Note: this type is marked as 'beforefieldinit'.
			static Settings()
			{
				Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr = IL2CPP.GetIl2CppNestedType(Il2CppClassPointerStore<GrainModel>.NativeClassPtr, "Settings");
				IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr);
				GrainModel.Settings.NativeFieldInfoPtr_colored = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr, "colored");
				GrainModel.Settings.NativeFieldInfoPtr_intensity = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr, "intensity");
				GrainModel.Settings.NativeFieldInfoPtr_size = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr, "size");
				GrainModel.Settings.NativeFieldInfoPtr_luminanceContribution = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr, "luminanceContribution");
				GrainModel.Settings.NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr, 100675734);
			}

			// Token: 0x06009EFE RID: 40702 RVA: 0x0028D95B File Offset: 0x0028BB5B
			public Object BoxIl2CppObject()
			{
				return new Object(IL2CPP.il2cpp_value_box(Il2CppClassPointerStore<GrainModel.Settings>.NativeClassPtr, ref this));
			}

			// Token: 0x04006AA7 RID: 27303
			private static readonly IntPtr NativeFieldInfoPtr_colored;

			// Token: 0x04006AA8 RID: 27304
			private static readonly IntPtr NativeFieldInfoPtr_intensity;

			// Token: 0x04006AA9 RID: 27305
			private static readonly IntPtr NativeFieldInfoPtr_size;

			// Token: 0x04006AAA RID: 27306
			private static readonly IntPtr NativeFieldInfoPtr_luminanceContribution;

			// Token: 0x04006AAB RID: 27307
			private static readonly IntPtr NativeMethodInfoPtr_get_defaultSettings_Public_Static_get_Settings_0;

			// Token: 0x04006AAC RID: 27308
			[FieldOffset(0)]
			[MarshalAs(4)]
			public bool colored;

			// Token: 0x04006AAD RID: 27309
			[FieldOffset(4)]
			public float intensity;

			// Token: 0x04006AAE RID: 27310
			[FieldOffset(8)]
			public float size;

			// Token: 0x04006AAF RID: 27311
			[FieldOffset(12)]
			public float luminanceContribution;
		}
	}
}
