//
// CloakHoles_FP.h
//
// Created by Ben Weston - 19 May 2008
//
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
#pragma once
#endif

#ifndef __ASURA_PS3_CLOAKHOLES_FP_H__
#define __ASURA_PS3_CLOAKHOLES_FP_H__

extern uint32_t _binary_PS3_CloakHoles_FP_bin_start;
extern uint32_t _binary_PS3_CloakHoles_FP_bin_end;

enum CLOAK_HOLES_FP_UNIFORM
{
	CLOAK_HOLES_FP_PARAMS,
	CLOAK_HOLES_FP_OFFSET,
	CLOAK_HOLES_FP_TIME,
	CLOAK_HOLES_FP_ELEMENTS
};

enum CLOAK_HOLES_FP_TEXTURE_UNITS
{
	CLOAK_HOLES_FP_NoiseTexture,
	CLOAK_HOLES_FP_TU_ELEMENTS
};

class Asura_PS3_CloakHoles_Handles : public Asura_PS3_FP_Handles
{
public:
	Asura_PS3_CloakHoles_Handles() : Asura_PS3_FP_Handles( FP_ELEMENTS, FP_TU_ELEMENTS )
	{}

	void InitialiseFromShader( Asura_PS3_FragmentShaderBase* pxShader )
	{
		pxShader->InitUniformElement( CLOAK_HOLES_FP_PARAMS,	"g_xParams",			1 );
		pxShader->InitUniformElement( CLOAK_HOLES_FP_OFFSET,	"g_xOffset",			1 );
		pxShader->InitUniformElement( CLOAK_HOLES_FP_TIME,		"g_fTime",				1 );

		pxShader->InitTextureUnit( CLOAK_HOLES_FP_NoiseTexture,		"g_xNoiseTextureSampler", CELL_GCM_TEXTURE_WRAP, CELL_GCM_TEXTURE_WRAP, CELL_GCM_TEXTURE_LINEAR_LINEAR, CELL_GCM_TEXTURE_LINEAR );
	}
};

#endif //#ifndef __ASURA_PS3_CLOAKHOLES_FP_H__
