//
// DeferredPhoton.h
//
// Created by Catalin Arsenescu - 26 August 2007
//
// Copyright (C) 2006 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __ASURA_PS3_DEFERRED_PHOTON_VP_H__
#define __ASURA_PS3_DEFERRED_PHOTON_VP_H__

extern u_int _binary_PS3_DeferredPhoton_VP_bin_start;
extern u_int _binary_PS3_DeferredPhoton_VP_bin_end;

static Asura_PS3_GCM_VertexShaderUniformParameter g_axVertexUniform[] =
{
	//m_szName, m_usArraySize, m_sizeInFloat4ForOneElement, m_usRegister
	{ "g_xViewProjectionMatrix",	1, 4, NULL },
	{ "g_xMeshScaleAndPos",			1, 1, NULL },
};

enum VERTEX_SHADER_UNIFORM
{
	VS_ViewProjectionMatrix,
	VS_MeshScaleAndPos,
};

class Asura_PS3_VP_Deferred : public Asura_PS3_GCM_VertexShader
{
public:
	Asura_PS3_VP_Deferred() : Asura_PS3_GCM_VertexShader( (unsigned char *)&_binary_PS3_DeferredPhoton_VP_bin_start, (unsigned char *)&_binary_PS3_DeferredPhoton_VP_bin_end, g_axVertexUniform, sizeof ( g_axVertexUniform ) / sizeof ( Asura_PS3_GCM_VertexShaderUniformParameter ) )
	{
	}

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

#endif //#ifndef __ASURA_PS3_DEFERRED_PHOTON_VP_H__
