////////////////////////////////////////////////////////////////////////////////////////////////////
// Includes
////////////////////////////////////////////////////////////////////////////////////////////////////

#include "../../types.txt"

////////////////////////////////////////////////////////////////////////////////////////////////////
// Structures
////////////////////////////////////////////////////////////////////////////////////////////////////

struct VS_INPUT
{
	float4 pos   : POSITION;
	float4 color : COLOR;
};

struct VS_OUTPUT
{
	float4 pos   : MSV_POSITION;
	float4 color : TEXCOORD0;
};

////////////////////////////////////////////////////////////////////////////////////////////////////
// Grobal values
////////////////////////////////////////////////////////////////////////////////////////////////////

#if MIX_SM_HIGH

	cbuffer cbInput : register( b0 )
	{
		float4x4 g_VPMat; // View * Projection Matrix
	};
	
#else // MIX_SM_HIGH

	float4x4 g_VPMat : register( c0 ); // View * Projection Matrix

#endif //MIX_SM_HIGH

////////////////////////////////////////////////////////////////////////////////////////////////////
// Main function
////////////////////////////////////////////////////////////////////////////////////////////////////

VS_OUTPUT main( VS_INPUT input )
{
	VS_OUTPUT output;

	output.pos = mul( input.pos, g_VPMat );
	output.color = input.color;

	return output;
}
