//
// SmoothSkin_StraightThrough_VP.h
//
// Ben Weston - 30/05/08
//
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __ASURA_PS3_SMOOTHSKIN_STRAIGHTTHROUGH_VP_H__
#define __ASURA_PS3_SMOOTHSKIN_STRAIGHTTHROUGH_VP_H__

extern uint32_t _binary_PS3_Transform_Float4_VP_bin_start;
extern uint32_t _binary_PS3_Transform_Float4_VP_bin_end;

static Asura_PS3_GCM_VertexShaderUniformParameter g_axVertexShaderUniformTransformFloat4[] =
{
	//m_szName, m_usArraySize, m_sizeInFloat4ForOneElement, m_usRegister
	{ "g_xTransform",	1, 4, NULL },
};

enum VERTEX_SHADER_UNIFORM_TRANSFORM_FLOAT4
{
	VS_TRANSFORM_FLOAT4_Transform,
};

class Asura_PS3_VP_SmoothSkin_StraightThroughShadow : public Asura_PS3_GCM_VertexShader
{
public:
	Asura_PS3_VP_SmoothSkin_StraightThroughShadow() : Asura_PS3_GCM_VertexShader( (unsigned char *)&_binary_PS3_Transform_Float4_VP_bin_start, (unsigned char *)&_binary_PS3_Transform_Float4_VP_bin_end,
																					g_axVertexShaderUniformTransformFloat4, sizeof(g_axVertexShaderUniformTransformFloat4)/sizeof(Asura_PS3_GCM_VertexShaderUniformParameter) )
	{
	}

	~Asura_PS3_VP_SmoothSkin_StraightThroughShadow()
	{
		u_int i;
		for( i = 0; i < sizeof( g_axVertexShaderUniformTransformFloat4 ) / sizeof( Asura_PS3_GCM_VertexShaderUniformParameter ); ++i )
		{
			g_axVertexShaderUniformTransformFloat4[ i ].CleanUp();
		}
	}
};


#endif //#ifndef __ASURA_PS3_SMOOTHSKIN_STRAIGHTTHROUGH_VP_H__
