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

namespace UnityEngine.PostProcessing
{
	// Token: 0x0200058E RID: 1422
	[Serializable]
	public sealed class ColorGradingCurve : Object
	{
		// Token: 0x060097A6 RID: 38822 RVA: 0x0026EEBC File Offset: 0x0026D0BC
		[CallerCount(8)]
		[CachedScanResults(RefRangeStart = 617304, RefRangeEnd = 617312, XrefRangeStart = 617301, XrefRangeEnd = 617304, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe ColorGradingCurve(AnimationCurve curve, float zeroValue, bool loop, Vector2 bounds)
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr))
		{
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)4) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(curve);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref zeroValue;
			ptr[checked(unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref loop;
			ptr[checked(unchecked((UIntPtr)3) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = ref bounds;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ColorGradingCurve.NativeMethodInfoPtr__ctor_Public_Void_AnimationCurve_Single_Boolean_Vector2_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060097A7 RID: 38823 RVA: 0x0026EF58 File Offset: 0x0026D158
		[CallerCount(2)]
		[CachedScanResults(RefRangeStart = 617328, RefRangeEnd = 617330, XrefRangeStart = 617312, XrefRangeEnd = 617328, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void Cache()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ColorGradingCurve.NativeMethodInfoPtr_Cache_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x060097A8 RID: 38824 RVA: 0x0026EF9C File Offset: 0x0026D19C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 617330, XrefRangeEnd = 617334, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe float Evaluate(float t)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = ref t;
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ColorGradingCurve.NativeMethodInfoPtr_Evaluate_Public_Single_Single_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
				return *IL2CPP.il2cpp_object_unbox(intPtr);
			}
		}

		// Token: 0x060097A9 RID: 38825 RVA: 0x0026F000 File Offset: 0x0026D200
		// Note: this type is marked as 'beforefieldinit'.
		static ColorGradingCurve()
		{
			Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityEngine.PostProcessing", "ColorGradingCurve");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr);
			ColorGradingCurve.NativeFieldInfoPtr_curve = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "curve");
			ColorGradingCurve.NativeFieldInfoPtr_m_Loop = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_Loop");
			ColorGradingCurve.NativeFieldInfoPtr_m_ZeroValue = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_ZeroValue");
			ColorGradingCurve.NativeFieldInfoPtr_m_Range = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_Range");
			ColorGradingCurve.NativeFieldInfoPtr_m_InternalLoopingCurve = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, "m_InternalLoopingCurve");
			ColorGradingCurve.NativeMethodInfoPtr__ctor_Public_Void_AnimationCurve_Single_Boolean_Vector2_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, 100675092);
			ColorGradingCurve.NativeMethodInfoPtr_Cache_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, 100675093);
			ColorGradingCurve.NativeMethodInfoPtr_Evaluate_Public_Single_Single_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ColorGradingCurve>.NativeClassPtr, 100675094);
		}

		// Token: 0x060097AA RID: 38826 RVA: 0x0000A688 File Offset: 0x00008888
		public ColorGradingCurve(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x17003357 RID: 13143
		// (get) Token: 0x060097AB RID: 38827 RVA: 0x0026F0D0 File Offset: 0x0026D2D0
		// (set) Token: 0x060097AC RID: 38828 RVA: 0x0026F104 File Offset: 0x0026D304
		public unsafe AnimationCurve curve
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_curve);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new AnimationCurve(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_curve), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x17003358 RID: 13144
		// (get) Token: 0x060097AD RID: 38829 RVA: 0x0026F12C File Offset: 0x0026D32C
		// (set) Token: 0x060097AE RID: 38830 RVA: 0x0026F154 File Offset: 0x0026D354
		public unsafe bool m_Loop
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Loop);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Loop)) = value;
			}
		}

		// Token: 0x17003359 RID: 13145
		// (get) Token: 0x060097AF RID: 38831 RVA: 0x0026F178 File Offset: 0x0026D378
		// (set) Token: 0x060097B0 RID: 38832 RVA: 0x0026F1A0 File Offset: 0x0026D3A0
		public unsafe float m_ZeroValue
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_ZeroValue);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_ZeroValue)) = value;
			}
		}

		// Token: 0x1700335A RID: 13146
		// (get) Token: 0x060097B1 RID: 38833 RVA: 0x0026F1C4 File Offset: 0x0026D3C4
		// (set) Token: 0x060097B2 RID: 38834 RVA: 0x0026F1EC File Offset: 0x0026D3EC
		public unsafe float m_Range
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Range);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_Range)) = value;
			}
		}

		// Token: 0x1700335B RID: 13147
		// (get) Token: 0x060097B3 RID: 38835 RVA: 0x0026F210 File Offset: 0x0026D410
		// (set) Token: 0x060097B4 RID: 38836 RVA: 0x0026F244 File Offset: 0x0026D444
		public unsafe AnimationCurve m_InternalLoopingCurve
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_InternalLoopingCurve);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new AnimationCurve(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(ColorGradingCurve.NativeFieldInfoPtr_m_InternalLoopingCurve), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x040065C5 RID: 26053
		private static readonly IntPtr NativeFieldInfoPtr_curve;

		// Token: 0x040065C6 RID: 26054
		private static readonly IntPtr NativeFieldInfoPtr_m_Loop;

		// Token: 0x040065C7 RID: 26055
		private static readonly IntPtr NativeFieldInfoPtr_m_ZeroValue;

		// Token: 0x040065C8 RID: 26056
		private static readonly IntPtr NativeFieldInfoPtr_m_Range;

		// Token: 0x040065C9 RID: 26057
		private static readonly IntPtr NativeFieldInfoPtr_m_InternalLoopingCurve;

		// Token: 0x040065CA RID: 26058
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_AnimationCurve_Single_Boolean_Vector2_0;

		// Token: 0x040065CB RID: 26059
		private static readonly IntPtr NativeMethodInfoPtr_Cache_Public_Void_0;

		// Token: 0x040065CC RID: 26060
		private static readonly IntPtr NativeMethodInfoPtr_Evaluate_Public_Single_Single_0;
	}
}
