//////////////////////////////////////////////////////////////////////////////
//
// Asura_PS3_PFXRender.h
//
// Copyright (c) 2005 Rebellion. All rights reserved.
//
// Description:
//
//     Code to write particle render data to vertex buffer. To be compiled on
//     both PPU and SPU. 
//
//////////////////////////////////////////////////////////////////////////////

// B E G I N   F I L E   W R A P P E R ///////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef ___ASURA_PS3_PFXRENDER_H___
#define ___ASURA_PS3_PFXRENDER_H___ 1

// I N C L U D E S ///////////////////////////////////////////////////////////
#include "Core/Asura_Maths.h"
#include "Core/Asura_HalfFloat.h"

// F O R W A R D   D E C L A R A T I O N S ///////////////////////////////////
class Asura_PFX_Particle;
class Asura_PFX_Particle_Template;
class Asura_PS3_ParticleRender_Vertex;
class Asura_RGBA;

// C O N S T A N T S /////////////////////////////////////////////////////////
static const u_int NUM_VERTICES_PER_PARTICLE = 4;

// C L A S S   D E C L A R A T I O N S ///////////////////////////////////////
struct Asura_PS3_ParticleRender_Vertex
{
	Asura_HalfFloat	m_R, m_G, m_B, m_A;
	Asura_Vector_2	m_axTextureCoords[ 2 ];
	Asura_Vector_3	m_xPosition;
	Asura_HalfFloat	m_fFrameInfo[ 2 ];
};


// F U N C T I O N   P R O T O T Y P E S /////////////////////////////////////
extern void Asura_PS3_RenderPFXForCurrentCamera (Asura_PS3_ParticleRender_Vertex* const pxVB,
											 float fEffectSizeScale,
											 const Asura_Matrix_3x3* pxEffectOrientation,
											 const Asura_PFX_Particle* const pxParticles,
											 const u_int uNumParticles,
											 const Asura_PFX_Particle_Template& xTemplate,
											 const Asura_RGBA& xLightColour,
											 const Asura_Vector_3& xCameraDeltaX,
											 const Asura_Vector_3& xCameraDeltaY,
											 const Asura_Vector_3& xCameraPos,
											 bool  bPaused
											 );

// E N D   F I L E   W R A P P E R ///////////////////////////////////////////

#endif // #ifndef ___ASURA_PS3_PFXRENDER_H___
