////////////////////////////////////////////////////////////////////////////////////////////////////
// Macros
////////////////////////////////////////////////////////////////////////////////////////////////////

//MIX_SM_3 : Shader model 3
//MIX_SM_4 : Shader model 4
//MIX_SM_5 : Shader model 5

#define MIX_SM_LOW ( MIX_SM_3 )
#define MIX_SM_HIGH ( MIX_SM_4 || MIX_SM_5 )

//Output target
#if MIX_SM_3

	#define MSV_POSITION POSITION

	#define MSV_TARGET0 COLOR0
	#define MSV_TARGET1 COLOR1
	#define MSV_TARGET2 COLOR2
	#define MSV_TARGET3 COLOR3

#else //MIX_SM_3

	#define MSV_POSITION SV_POSITION

	#define MSV_TARGET0 SV_TARGET0
	#define MSV_TARGET1 SV_TARGET1
	#define MSV_TARGET2 SV_TARGET2
	#define MSV_TARGET3 SV_TARGET3

#endif //MIX_SM_3

////////////////////////////////////////////////////////////////////////////////////////////////////
// Constants
////////////////////////////////////////////////////////////////////////////////////////////////////

static const float3 X_AXIS = float3( 1.0, 0.0, 0.0 );
static const float3 Y_AXIS = float3( 0.0, 1.0, 0.0 );
static const float3 Z_AXIS = float3( 0.0, 0.0, 1.0 );
