/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///																																  ///
///		FICHIER :	ZooFont.h																									  ///
///																																  ///
///		NATURE	:	Management of the font for the 3D scene																		  ///
///																																  ///
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////







#ifndef __ZOOFONT_H__
#define __ZOOFONT_H__



#include	"..\Basic\ZooStd.h"
#include	"..\Datas\ZooTexture.h"










///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// ZFont Class
///
///		- Class of font display on screen
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

class ZFont : public ZData
{
public:
	
	ZTexture		*texture;			// font texture
	int				baseListID;			// IDs of the displays list for each caracters

	unsigned char depth, light, blend, textu;		// flags for enabling the writing mode
	
	///////////////////////////////////////////////////////////////////////////
	/// Constructor					 										///
	///////////////////////////////////////////////////////////////////////////
	ZFont();

	///////////////////////////////////////////////////////////////////////////
	/// Destructor					 										///
	///////////////////////////////////////////////////////////////////////////
	~ZFont();


	///////////////////////////////////////////////////////////////////////////
	/// Set the texture used by the font									///
	///////////////////////////////////////////////////////////////////////////
	void SetTexture(ZTexture *newTex);


	///////////////////////////////////////////////////////////////////////////
	///	BuildFontLists														///
	///////////////////////////////////////////////////////////////////////////
	void BuildFontLists(int nbW, int nbH);


	///////////////////////////////////////////////////////////////////////////
	///	Init & stop the font print											///
	///////////////////////////////////////////////////////////////////////////
	bool InitFontPrint(int width, int height, bool blending);
	void StopFontPrint();

	///////////////////////////////////////////////////////
	///	Print											///
	///////////////////////////////////////////////////////
	bool Print(GLint x, GLint y, int set, const char *fmt, ...);
};




#endif