///////////////////////////////////////////////////////////////////////////////////
// draw 2d object with simple texture
///////////////////////////////////////////////////////////////////////////////////
#include "Inc/WarFog.fx"
#include "Inc/TL.fx"

texture tTexture;

///////////////////////////////////////////////////////////////////////////////////
// SHADERS
///////////////////////////////////////////////////////////////////////////////////

sampler sTexture = sampler_state
{
	Texture=(tTexture);
//	AddressU = Border;
//	AddressV = Border;
//	AddressW = Clamp;
	BorderColor = 0xff000000;
	MinFilter=Linear;
	MipFilter=Linear;
	MagFilter=Linear;	
};

struct vsIn
{
	float3 vPos : POSITION;
	float2 vTex	: TEXCOORD0;
};

struct vsOut
{
	float4 vPos : POSITION;
	float2 vTex : TEXCOORD0;
	float2 vFogCoords:TEXCOORD1; 
};

vsOut vsDefault(vsIn vIn)
{
	vsOut vOut;
	vOut.vPos = TLFromPixels(vIn.vPos);
	vOut.vTex= vIn.vTex;
	vOut.vFogCoords = float2(vIn.vTex.x, 1-vIn.vTex.y);
	return vOut;
}

float4 psDefault(vsOut vIn):COLOR0
{
	clip(-vIn.vTex * vIn.vTex + vIn.vTex);
	float4 color = tex2D(sTexture, vIn.vTex);
	return float4(color.xyz * GetWarFog(vIn.vFogCoords), color.w);
}

technique Default
{
	Pass Pass1
	{
		CullMode=CCW;
		AlphaBlendEnable=true;
		ZEnable=true;
		ZWriteEnable=true;
		SrcBlend=SrcAlpha;
		DestBlend=InvSrcAlpha;
		FillMode=Solid;
		AlphaTestEnable=false;
//		AlphaRef=0x05;
		PointSpriteEnable=false;
		StencilEnable = false;
		VertexShader=compile vs_2_0 vsDefault();
		PixelShader=compile ps_2_0 psDefault();
	}
}






