///////////////////////////////////////////////////////////////////////////////
//
// File   : GlowOutlinesFS_Final_FP.h
// Author : Andy Southgate
// Date   : 20-February-2009
//
// Copyright (C) 2009 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////


#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif   // ifdef ASURA_USE_PRAGMA_ONCE

#ifndef __GLOWOUTLINESFS_FINAL_FP_H__
#define __GLOWOUTLINESFS_FINAL_FP_H__

extern uint32_t _binary_PS3_GlowOutlinesFS_Final_FP_bin_start;
extern uint32_t _binary_PS3_GlowOutlinesFS_Final_FP_bin_end;


class AVP_PS3_GlowOutlinesFS_Final_PS : public AVP_PS3_PixelShader
{
	class Handles : public Asura_PS3_FP_Handles
	{
	public:
		Handles() : Asura_PS3_FP_Handles( 0, FP_TU_ELEMENTS )
		{}

		void InitialiseFromShader( Asura_PS3_FragmentShaderBase* pxShader )
		{
			pxShader->InitTextureUnit( FP_SceneTexture,		"g_xSceneTextureSampler", CELL_GCM_TEXTURE_CLAMP, CELL_GCM_TEXTURE_CLAMP, CELL_GCM_TEXTURE_LINEAR_LINEAR, CELL_GCM_TEXTURE_LINEAR );
		}
	};

public:

	enum TEXTURE_UNITS
	{
		FP_SceneTexture,
		FP_TU_ELEMENTS
	};

	AVP_PS3_GlowOutlinesFS_Final_PS() : 
		AVP_PS3_PixelShader(ASURA_PS3_GLOWOUTLINESFS_FIN_SHADER, new Handles(), 
			&_binary_PS3_GlowOutlinesFS_Final_FP_bin_start, &_binary_PS3_GlowOutlinesFS_Final_FP_bin_end)
	{

	}

	void SetTexture( TEXTURE_UNITS iTextureID, int iTextureIndex)
	{
		AVP_PS3_PixelShader::SetTexture(iTextureID, iTextureIndex);
	}
	void SetTexture( TEXTURE_UNITS iTextureID, Asura_PS3_Texture* pxTexture, bool bNormalizedTextureCoordinates = true )
	{
		AVP_PS3_PixelShader::SetTexture(iTextureID, pxTexture, bNormalizedTextureCoordinates);
	}
#if defined(ASURA_PS3_ALLOW_SHADER_RELOAD)
	void ReloadFromDisc()
	{
		AVP_PS3_PixelShader::ReloadFromDisc("~/Project/AVP/Game/PS3/Shaders/GlowOutlinesFS_Final_FP.fpx", new Handles());

	}
#endif

};

#endif // __GLOWOUTLINESFS_FINAL_FP_H__

/// End of file. ///
