Shader "ubu/processing/pix_clear"
{
   Properties
   {
      [NoScaleOffset] _MainTex ("Texture", 2D) = "white" {}
   }
   SubShader
   {
      // No culling or depth
      Cull Off ZWrite Off ZTest Always
      Blend SrcAlpha OneMinusSrcAlpha

      Pass
      {
         CGPROGRAM
         #pragma vertex vert
         #pragma fragment frag

         #include "UnityCG.cginc"

         struct appdata
         {
            float4 vertex : POSITION;
            float2 uv : TEXCOORD0;
         };

         struct v2f
         {
            float2 uv : TEXCOORD0;
            float4 vertex : SV_POSITION;
         };

         v2f vert (appdata v)
         {
            v2f o;
            o.vertex = UnityObjectToClipPos(v.vertex);
            o.uv = v.uv;
            return o;
         }

         sampler2D _MainTex;
         half4 _MainTex_TexelSize;
         sampler2D _Mask;

         fixed4 frag (v2f i) : SV_Target
         {
            float mask = tex2Dgrad( _Mask, i.uv, 0.0, 0.0 ).r;
            //float4 s = float4(0,0,0,0);
            //if( mask == 0.0 )
            //{
            //   float t = 0.0f;

            //   for( int x=-1; x<=1; x ++ )
            //   {
            //      for( int y=-1; y<=1; y ++ )
            //      {
            //         float2 offset = float2( x, y )*_MainTex_TexelSize.xy;
            //         float m = tex2D( _Mask, i.uv + offset ).r;
            //         float4 c = tex2D( _MainTex, i.uv + offset );
            //         
            //         s += c * m;
            //         t += m;
            //      }
            //   }

            //   s /= t;
            //}
            //else
            //{
            //   s = tex2D( _MainTex, i.uv );
            //}

            float4 s = tex2Dgrad( _MainTex, i.uv, 0.0, 0.0 );
            return float4( s.rgb, mask );
         }
         ENDCG
      }
   }
}
