//========= Copyright © 1996-2007, Valve Corporation, All rights reserved. ============//

// STATIC:  "STAGE"				"0..2"

#include "common_ps_fxc.h"

sampler g_tPortalColorSampler	: register( s0 );
sampler g_tPortalMaskSampler	: register( s1 );

const float3 g_vConst1			: register( c1 );
#define g_flPortalOpenAmount   g_vConst1.x
#define g_flPortalActive       g_vConst1.y
#define g_flPortalColorScale   g_vConst1.z

struct PS_INPUT
{
	float2 vUv0	: TEXCOORD0;
	float2 vUv1	: TEXCOORD1;
};

float4 main( PS_INPUT i ) : COLOR
{
	float4 result;

	result.rgba = tex2D( g_tPortalColorSampler, i.vUv0.xy );
	result.rgb *= g_flPortalColorScale + g_flPortalColorScale + g_flPortalColorScale + g_flPortalColorScale; // This is divided by 4 in C code

	#if ( STAGE == 2 ) // Color layer
		result.a += tex2D( g_tPortalMaskSampler, i.vUv1.xy ).a * ( 1.0f - g_flPortalActive );
	#endif

	return result;
}