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

namespace UnityStandardAssets.ImageEffects
{
	// Token: 0x0200060F RID: 1551
	public class BloomOptimized : PostEffectsBase
	{
		// Token: 0x0600A277 RID: 41591 RVA: 0x0029B550 File Offset: 0x00299750
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651117, XrefRangeEnd = 651121, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe override bool CheckResources()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(IL2CPP.il2cpp_object_get_virtual_method(IL2CPP.Il2CppObjectBaseToPtr(this), BloomOptimized.NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A278 RID: 41592 RVA: 0x0029B5AC File Offset: 0x002997AC
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651121, XrefRangeEnd = 651128, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDisable()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(BloomOptimized.NativeMethodInfoPtr_OnDisable_Private_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A279 RID: 41593 RVA: 0x0029B5F0 File Offset: 0x002997F0
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651128, XrefRangeEnd = 651163, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnRenderImage(RenderTexture source, RenderTexture destination)
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr;
			checked
			{
				ptr = stackalloc IntPtr[unchecked((UIntPtr)2) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(source);
			}
			ptr[checked(unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)) / (UIntPtr)sizeof(IntPtr)] = IL2CPP.Il2CppObjectBaseToPtr(destination);
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(BloomOptimized.NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A27A RID: 41594 RVA: 0x0029B664 File Offset: 0x00299864
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651163, XrefRangeEnd = 651164, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe BloomOptimized()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(BloomOptimized.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A27B RID: 41595 RVA: 0x0029B6B0 File Offset: 0x002998B0
		// Note: this type is marked as 'beforefieldinit'.
		static BloomOptimized()
		{
			Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityStandardAssets.ImageEffects", "BloomOptimized");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr);
			BloomOptimized.NativeFieldInfoPtr_threshold = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "threshold");
			BloomOptimized.NativeFieldInfoPtr_intensity = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "intensity");
			BloomOptimized.NativeFieldInfoPtr_blurSize = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "blurSize");
			BloomOptimized.NativeFieldInfoPtr_resolution = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "resolution");
			BloomOptimized.NativeFieldInfoPtr_blurIterations = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "blurIterations");
			BloomOptimized.NativeFieldInfoPtr_blurType = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "blurType");
			BloomOptimized.NativeFieldInfoPtr_fastBloomShader = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "fastBloomShader");
			BloomOptimized.NativeFieldInfoPtr_fastBloomMaterial = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, "fastBloomMaterial");
			BloomOptimized.NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, 100675959);
			BloomOptimized.NativeMethodInfoPtr_OnDisable_Private_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, 100675960);
			BloomOptimized.NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, 100675961);
			BloomOptimized.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BloomOptimized>.NativeClassPtr, 100675962);
		}

		// Token: 0x0600A27C RID: 41596 RVA: 0x00298C00 File Offset: 0x00296E00
		public BloomOptimized(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170036D8 RID: 14040
		// (get) Token: 0x0600A27D RID: 41597 RVA: 0x0029B7D0 File Offset: 0x002999D0
		// (set) Token: 0x0600A27E RID: 41598 RVA: 0x0029B7F8 File Offset: 0x002999F8
		public unsafe float threshold
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_threshold);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_threshold)) = value;
			}
		}

		// Token: 0x170036D9 RID: 14041
		// (get) Token: 0x0600A27F RID: 41599 RVA: 0x0029B81C File Offset: 0x00299A1C
		// (set) Token: 0x0600A280 RID: 41600 RVA: 0x0029B844 File Offset: 0x00299A44
		public unsafe float intensity
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_intensity);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_intensity)) = value;
			}
		}

		// Token: 0x170036DA RID: 14042
		// (get) Token: 0x0600A281 RID: 41601 RVA: 0x0029B868 File Offset: 0x00299A68
		// (set) Token: 0x0600A282 RID: 41602 RVA: 0x0029B890 File Offset: 0x00299A90
		public unsafe float blurSize
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_blurSize);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_blurSize)) = value;
			}
		}

		// Token: 0x170036DB RID: 14043
		// (get) Token: 0x0600A283 RID: 41603 RVA: 0x0029B8B4 File Offset: 0x00299AB4
		// (set) Token: 0x0600A284 RID: 41604 RVA: 0x0029B8DC File Offset: 0x00299ADC
		public unsafe BloomOptimized.Resolution resolution
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_resolution);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_resolution)) = value;
			}
		}

		// Token: 0x170036DC RID: 14044
		// (get) Token: 0x0600A285 RID: 41605 RVA: 0x0029B900 File Offset: 0x00299B00
		// (set) Token: 0x0600A286 RID: 41606 RVA: 0x0029B928 File Offset: 0x00299B28
		public unsafe int blurIterations
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_blurIterations);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_blurIterations)) = value;
			}
		}

		// Token: 0x170036DD RID: 14045
		// (get) Token: 0x0600A287 RID: 41607 RVA: 0x0029B94C File Offset: 0x00299B4C
		// (set) Token: 0x0600A288 RID: 41608 RVA: 0x0029B974 File Offset: 0x00299B74
		public unsafe BloomOptimized.BlurType blurType
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_blurType);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_blurType)) = value;
			}
		}

		// Token: 0x170036DE RID: 14046
		// (get) Token: 0x0600A289 RID: 41609 RVA: 0x0029B998 File Offset: 0x00299B98
		// (set) Token: 0x0600A28A RID: 41610 RVA: 0x0029B9CC File Offset: 0x00299BCC
		public unsafe Shader fastBloomShader
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_fastBloomShader);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Shader(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_fastBloomShader), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170036DF RID: 14047
		// (get) Token: 0x0600A28B RID: 41611 RVA: 0x0029B9F4 File Offset: 0x00299BF4
		// (set) Token: 0x0600A28C RID: 41612 RVA: 0x0029BA28 File Offset: 0x00299C28
		public unsafe Material fastBloomMaterial
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_fastBloomMaterial);
				IntPtr intPtr2 = *intPtr;
				return (intPtr2 != 0) ? new Material(intPtr2) : null;
			}
			set
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
				IL2CPP.il2cpp_gc_wbarrier_set_field(intPtr, intPtr + (IntPtr)IL2CPP.il2cpp_field_get_offset(BloomOptimized.NativeFieldInfoPtr_fastBloomMaterial), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04006D08 RID: 27912
		private static readonly IntPtr NativeFieldInfoPtr_threshold;

		// Token: 0x04006D09 RID: 27913
		private static readonly IntPtr NativeFieldInfoPtr_intensity;

		// Token: 0x04006D0A RID: 27914
		private static readonly IntPtr NativeFieldInfoPtr_blurSize;

		// Token: 0x04006D0B RID: 27915
		private static readonly IntPtr NativeFieldInfoPtr_resolution;

		// Token: 0x04006D0C RID: 27916
		private static readonly IntPtr NativeFieldInfoPtr_blurIterations;

		// Token: 0x04006D0D RID: 27917
		private static readonly IntPtr NativeFieldInfoPtr_blurType;

		// Token: 0x04006D0E RID: 27918
		private static readonly IntPtr NativeFieldInfoPtr_fastBloomShader;

		// Token: 0x04006D0F RID: 27919
		private static readonly IntPtr NativeFieldInfoPtr_fastBloomMaterial;

		// Token: 0x04006D10 RID: 27920
		private static readonly IntPtr NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0;

		// Token: 0x04006D11 RID: 27921
		private static readonly IntPtr NativeMethodInfoPtr_OnDisable_Private_Void_0;

		// Token: 0x04006D12 RID: 27922
		private static readonly IntPtr NativeMethodInfoPtr_OnRenderImage_Private_Void_RenderTexture_RenderTexture_0;

		// Token: 0x04006D13 RID: 27923
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000610 RID: 1552
		public enum Resolution
		{
			// Token: 0x04006D15 RID: 27925
			Low,
			// Token: 0x04006D16 RID: 27926
			High
		}

		// Token: 0x02000611 RID: 1553
		public enum BlurType
		{
			// Token: 0x04006D18 RID: 27928
			Standard,
			// Token: 0x04006D19 RID: 27929
			Sgx
		}
	}
}
