//
// Laser_VP.h
//
// Created by Catalin Arsenescu - 11 October 2007
//
// Copyright (C) 2006 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __ASURA_PS3_LASER_VP_H__
#define __ASURA_PS3_LASER_VP_H__

extern uint32_t _binary_PS3_Laser_VP_bin_start;
extern uint32_t _binary_PS3_Laser_VP_bin_end;

static Asura_PS3_GCM_VertexShaderUniformParameter g_axVertexShaderUniform[] =
{
	//m_szName, m_usArraySize, m_sizeInFloat4ForOneElement, m_usRegister
	{ "g_xViewProjectionMatrix",	1, 4, NULL },
	{ "g_xParams",	1, 1, NULL },
	{ "g_xBeamFadeOff",	1, 1, NULL },
};

enum VERTEX_SHADER_UNIFORM
{
	VP_ViewProjectionMatrix,
	VP_Params,
	VP_BeamFadeOff
};

class Asura_PS3_VP_Laser : public Asura_PS3_GCM_VertexShader
{
public:
	Asura_PS3_VP_Laser() : Asura_PS3_GCM_VertexShader( (unsigned char *)&_binary_PS3_Laser_VP_bin_start, (unsigned char *)&_binary_PS3_Laser_VP_bin_end, g_axVertexShaderUniform, sizeof ( g_axVertexShaderUniform ) / sizeof ( Asura_PS3_GCM_VertexShaderUniformParameter ) )
	{
	}

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

#endif //#ifndef __ASURA_PS3_LASER_VP_H__
