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

namespace UnityStandardAssets.ImageEffects
{
	// Token: 0x02000613 RID: 1555
	public class BlurOptimized : PostEffectsBase
	{
		// Token: 0x0600A29E RID: 41630 RVA: 0x0029BF28 File Offset: 0x0029A128
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651280, XrefRangeEnd = 651284, 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), BlurOptimized.NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0), IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			return *IL2CPP.il2cpp_object_unbox(intPtr);
		}

		// Token: 0x0600A29F RID: 41631 RVA: 0x0029BF84 File Offset: 0x0029A184
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651284, XrefRangeEnd = 651291, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe void OnDisable()
		{
			IL2CPP.Il2CppObjectBaseToPtrNotNull(this);
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(BlurOptimized.NativeMethodInfoPtr_OnDisable_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A2A0 RID: 41632 RVA: 0x0029BFC8 File Offset: 0x0029A1C8
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651291, XrefRangeEnd = 651322, 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(BlurOptimized.NativeMethodInfoPtr_OnRenderImage_Public_Void_RenderTexture_RenderTexture_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A2A1 RID: 41633 RVA: 0x0029C03C File Offset: 0x0029A23C
		[CallerCount(0)]
		[CachedScanResults(RefRangeStart = 0, RefRangeEnd = 0, XrefRangeStart = 651322, XrefRangeEnd = 651323, MetadataInitTokenRva = 0L, MetadataInitFlagRva = 0L)]
		public unsafe BlurOptimized()
			: this(IL2CPP.il2cpp_object_new(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr))
		{
			IntPtr* ptr = null;
			IntPtr intPtr2;
			IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(BlurOptimized.NativeMethodInfoPtr__ctor_Public_Void_0, IL2CPP.Il2CppObjectBaseToPtrNotNull(this), (void**)ptr, ref intPtr2);
			Il2CppException.RaiseExceptionIfNecessary(intPtr2);
		}

		// Token: 0x0600A2A2 RID: 41634 RVA: 0x0029C088 File Offset: 0x0029A288
		// Note: this type is marked as 'beforefieldinit'.
		static BlurOptimized()
		{
			Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "UnityStandardAssets.ImageEffects", "BlurOptimized");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr);
			BlurOptimized.NativeFieldInfoPtr_downsample = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, "downsample");
			BlurOptimized.NativeFieldInfoPtr_blurSize = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, "blurSize");
			BlurOptimized.NativeFieldInfoPtr_blurIterations = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, "blurIterations");
			BlurOptimized.NativeFieldInfoPtr_blurType = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, "blurType");
			BlurOptimized.NativeFieldInfoPtr_blurShader = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, "blurShader");
			BlurOptimized.NativeFieldInfoPtr_blurMaterial = IL2CPP.GetIl2CppField(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, "blurMaterial");
			BlurOptimized.NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, 100675971);
			BlurOptimized.NativeMethodInfoPtr_OnDisable_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, 100675972);
			BlurOptimized.NativeMethodInfoPtr_OnRenderImage_Public_Void_RenderTexture_RenderTexture_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, 100675973);
			BlurOptimized.NativeMethodInfoPtr__ctor_Public_Void_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<BlurOptimized>.NativeClassPtr, 100675974);
		}

		// Token: 0x0600A2A3 RID: 41635 RVA: 0x00298C00 File Offset: 0x00296E00
		public BlurOptimized(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x170036E5 RID: 14053
		// (get) Token: 0x0600A2A4 RID: 41636 RVA: 0x0029C180 File Offset: 0x0029A380
		// (set) Token: 0x0600A2A5 RID: 41637 RVA: 0x0029C1A8 File Offset: 0x0029A3A8
		public unsafe int downsample
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_downsample);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_downsample)) = value;
			}
		}

		// Token: 0x170036E6 RID: 14054
		// (get) Token: 0x0600A2A6 RID: 41638 RVA: 0x0029C1CC File Offset: 0x0029A3CC
		// (set) Token: 0x0600A2A7 RID: 41639 RVA: 0x0029C1F4 File Offset: 0x0029A3F4
		public unsafe float blurSize
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurSize);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurSize)) = value;
			}
		}

		// Token: 0x170036E7 RID: 14055
		// (get) Token: 0x0600A2A8 RID: 41640 RVA: 0x0029C218 File Offset: 0x0029A418
		// (set) Token: 0x0600A2A9 RID: 41641 RVA: 0x0029C240 File Offset: 0x0029A440
		public unsafe int blurIterations
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurIterations);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurIterations)) = value;
			}
		}

		// Token: 0x170036E8 RID: 14056
		// (get) Token: 0x0600A2AA RID: 41642 RVA: 0x0029C264 File Offset: 0x0029A464
		// (set) Token: 0x0600A2AB RID: 41643 RVA: 0x0029C28C File Offset: 0x0029A48C
		public unsafe BlurOptimized.BlurType blurType
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurType);
				return *intPtr;
			}
			set
			{
				*(IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurType)) = value;
			}
		}

		// Token: 0x170036E9 RID: 14057
		// (get) Token: 0x0600A2AC RID: 41644 RVA: 0x0029C2B0 File Offset: 0x0029A4B0
		// (set) Token: 0x0600A2AD RID: 41645 RVA: 0x0029C2E4 File Offset: 0x0029A4E4
		public unsafe Shader blurShader
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurShader);
				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(BlurOptimized.NativeFieldInfoPtr_blurShader), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x170036EA RID: 14058
		// (get) Token: 0x0600A2AE RID: 41646 RVA: 0x0029C30C File Offset: 0x0029A50C
		// (set) Token: 0x0600A2AF RID: 41647 RVA: 0x0029C340 File Offset: 0x0029A540
		public unsafe Material blurMaterial
		{
			get
			{
				IntPtr intPtr = IL2CPP.Il2CppObjectBaseToPtrNotNull(this) + (IntPtr)IL2CPP.il2cpp_field_get_offset(BlurOptimized.NativeFieldInfoPtr_blurMaterial);
				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(BlurOptimized.NativeFieldInfoPtr_blurMaterial), IL2CPP.Il2CppObjectBaseToPtr(value));
			}
		}

		// Token: 0x04006D25 RID: 27941
		private static readonly IntPtr NativeFieldInfoPtr_downsample;

		// Token: 0x04006D26 RID: 27942
		private static readonly IntPtr NativeFieldInfoPtr_blurSize;

		// Token: 0x04006D27 RID: 27943
		private static readonly IntPtr NativeFieldInfoPtr_blurIterations;

		// Token: 0x04006D28 RID: 27944
		private static readonly IntPtr NativeFieldInfoPtr_blurType;

		// Token: 0x04006D29 RID: 27945
		private static readonly IntPtr NativeFieldInfoPtr_blurShader;

		// Token: 0x04006D2A RID: 27946
		private static readonly IntPtr NativeFieldInfoPtr_blurMaterial;

		// Token: 0x04006D2B RID: 27947
		private static readonly IntPtr NativeMethodInfoPtr_CheckResources_Public_Virtual_Boolean_0;

		// Token: 0x04006D2C RID: 27948
		private static readonly IntPtr NativeMethodInfoPtr_OnDisable_Public_Void_0;

		// Token: 0x04006D2D RID: 27949
		private static readonly IntPtr NativeMethodInfoPtr_OnRenderImage_Public_Void_RenderTexture_RenderTexture_0;

		// Token: 0x04006D2E RID: 27950
		private static readonly IntPtr NativeMethodInfoPtr__ctor_Public_Void_0;

		// Token: 0x02000614 RID: 1556
		public enum BlurType
		{
			// Token: 0x04006D30 RID: 27952
			StandardGauss,
			// Token: 0x04006D31 RID: 27953
			SgxGauss
		}
	}
}
