// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Zhanyou/MaskGradient"
{
	Properties
	{
		[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
		_Color("Tint", Color) = (1,1,1,1)

			// required for UI.Mask
			_StencilComp("Stencil Comparison", Float) = 8
			_Stencil("Stencil ID", Float) = 0
			_StencilOp("Stencil Operation", Float) = 0
			_StencilWriteMask("Stencil Write Mask", Float) = 255
			_StencilReadMask("Stencil Read Mask", Float) = 255
			_ColorMask("Color Mask", Float) = 15
	}
		SubShader
		{
			Tags
			{
				// ...
			}

		// required for UI.Mask
			Stencil
			{
				Ref[_Stencil]
				Comp[_StencilComp]
				Pass[_StencilOp]
				ReadMask[_StencilReadMask]
				WriteMask[_StencilWriteMask]
			}
			ColorMask[_ColorMask]

			Pass
			{
				Blend SrcAlpha OneMinusSrcAlpha
				Cull Back

				// I tried to edit these with no results
				ZWrite Off
				ZTest Off



				CGPROGRAM
				#pragma vertex vert
				#pragma fragment frag

				#pragma target 2.0
				#pragma glsl_no_auto_normalization

				sampler2D _MainTex;

				struct VertexInput
				{
					fixed4 position : POSITION;
					fixed2 uv : TEXCOORD0;
					fixed4 tintColor : COLOR;
				};

				struct VertexOutput
				{
					fixed4 position : SV_POSITION;
					fixed2 uv : TEXCOORD0;
					fixed4 tintColor : COLOR;
				};

				VertexOutput vert(VertexInput input)
				{
					VertexOutput output;
					output.position = UnityObjectToClipPos(input.position);
					output.uv = input.uv;
					output.tintColor = input.tintColor;

					return output;
				}

				fixed4 frag(VertexOutput input) : COLOR
				{
					fixed4 fragmentColor = tex2D(_MainTex, input.uv) * input.tintColor;
					
					return fragmentColor;
				}
				ENDCG
			}
		}
}