#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __ASURA_PS3_SKINDEBUG_FP_H__
#define __ASURA_PS3_SKINDEBUG_FP_H__

#include "Rendering\Asura_PS3_MaterialResponse_System.h"

enum {
	FP_DebugColour,
	FP_DebugMaterialProperties,
	FP_DebugSkin_NumParams
};

class Asura_PS3_SkinDebug_FP_Handles : public Asura_PS3_FP_Handles
{
public:
	Asura_PS3_SkinDebug_FP_Handles() : Asura_PS3_FP_Handles( FP_DebugSkin_NumParams, 0 )
	{}

	void InitialiseFromShader( Asura_PS3_FragmentShaderBase* pxShader )
	{
		pxShader->InitUniformElement( FP_DebugColour,					"g_xDebugColour", 1 );
		pxShader->InitUniformElement( FP_DebugMaterialProperties,		"g_xMaterialProperties",		1 );
	}
};


extern u_int _binary_PS3_SkinDebug_FP_bin_start;
extern u_int _binary_PS3_SkinDebug_FP_bin_end;

class Asura_PS3_SkinDebug_FP : public Asura_PS3_FragmentShader
{
public:
	Asura_PS3_SkinDebug_FP() : Asura_PS3_FragmentShader( (unsigned char *)&_binary_PS3_SkinDebug_FP_bin_start, (unsigned char *)&_binary_PS3_SkinDebug_FP_bin_end, new Asura_PS3_SkinDebug_FP_Handles )
	{
	}

	~Asura_PS3_SkinDebug_FP()
	{
		delete m_pxHandles;	//we created this in the constructor (though it's not obvious thanks to C++'s obfuscated syntax)
	}
};


#endif //#ifndef __ASURA_PS3_SKINDEBUG_FP_H__
