#ifndef SPRITEH
#define SPRITEH
 
#ifdef __cplusplus
extern "C" 
{
#endif
 
/* For DLL using these function :*/
#include "cpa_expt.h" 
 
#define GLI_C_lSpriteDrawMode2DScaled  1
#define GLI_C_lSpriteDrawMode2DRotativ 2
#define GLI_C_lSpriteDrawDisable       4
 
#define GLI_C_lMaxTimeForLensFlare    8
#define GLI_C_MaxLensFlare            10
 
 
typedef struct stLensFlareTab_ tdstLensFlareTab ;
struct stLensFlareTab_ {
  void *p_vReference[GLI_C_MaxLensFlare] ;
  long lApparitionTrame[GLI_C_MaxLensFlare] ;
  long lCounter[GLI_C_MaxLensFlare] ;
  char bIntersect[GLI_C_MaxLensFlare] ;
  long lNumberOfLensFlare ;
} ;
 
extern CPA_EXPORT void GLI_vSetLensFlareRef ( void *p_vRef ) ;
extern CPA_EXPORT char GLI_cRegisterLensFlare (void *p_vRef) ;
extern CPA_EXPORT void GLI_vUnregisterLensFlare(void *p_vRef) ;
extern CPA_EXPORT long GLI_lLensFlareExist(void *p_vRef) ;
extern CPA_EXPORT void GLI_vInitLensFlare (void) ;
 
/**********************************************************************************************/
/* Name: GLI_xDrawIndexedSprite*/
/* Goal: */
/* Code: Philippe Vimont / 1.0*/
/**********************************************************************************************/
extern CPA_EXPORT void 
GLI_vDrawIndexedSprite ( struct GLD_tdstViewportAttributes_ *p_stVpt ,
                         struct GEO_tdstGeometricObject_ *p_stObj ,
                         struct GEO_tdstIndexedSprite_ *p_stISpr ,
						 struct GLI_tdstInternalGlobalValuesFor3dEngine_ *p_stGlobaleMT);
 
extern CPA_EXPORT void 
    GLI_vDraw2DSpriteWithUV ( struct GLD_tdstViewportAttributes_ *p_stVpt ,
                       MTH_tdxReal  xXMin,
                       MTH_tdxReal  xXMax,
                       MTH_tdxReal  xYMin,
                       MTH_tdxReal  xYMax,
                       MTH_tdxReal  xUMin,
                       MTH_tdxReal  xUMax,
                       MTH_tdxReal  xVMin,
                       MTH_tdxReal  xVMax,
                       ACP_tdxHandleOfMaterial hMaterial);
 
extern CPA_EXPORT long 
/* REM : DO NOT MODIFY THIS FUNCTION, THIS MUST STAY THE COPY OF DRAWINDEXED SPRITE*/
GLI_vPickIndexedSprite ( struct GLD_tdstViewportAttributes_ *p_stVpt ,
                         struct GEO_tdstGeometricObject_ *p_stObj ,
                         struct GEO_tdstIndexedSprite_ *p_stISpr , 
						 MTH2D_tdstVector *p_stScreenCoord,
						 struct GLI_tdstInternalGlobalValuesFor3dEngine_ *p_stGlobaleMT);
 
/*ANNECY VL PRT 18/03/98{*/
extern CPA_EXPORT void GLI_vFastDrawIndexedSprite 
						( 
							GLD_tdstViewportAttributes *p_stVpt ,
							GEO_tdstGeometricObject *p_stObj ,
							GEO_tdstElementSprite *p_stSpriteElem ,
							struct GLI_tdstInternalGlobalValuesFor3dEngine_ *p_stGlobaleMT
						);
/*ENDANNECY VL}*/
 
#ifdef __cplusplus
} /*extern "C"*/
#endif
 
#endif
 
