#ifndef GLI_DEFN_H
#define GLI_DEFN_H
 
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
 
#if !defined(U64)
/*ANNECY jt {*/
/*	#define C_lMaxLightInViewport   50*/
	#define C_lMaxLightInViewport   300
/*ENDANNECY jt }*/
#else  /* U64 */
	#define C_lMaxLightInViewport		20
#endif /* U64 */
 
#define GLI_C_lIsTextured							1
#define GLI_C_lIsGouraud							2 /* else is flat*/
#define GLI_C_lIsNotWired							4 /* so is solid*/
#define GLI_C_lIsNotGrided							8
#define GLI_C_lIsNotDoted							16 /* means draw only the points*/
#define GLI_C_lIsNotOutlined						32 /* means draw only the points*/
#define GLI_C_lIsNotDrawCollideInformation			64 /* means draw collision spheres & box*/
#define GLI_C_lIsNotDrawCollideInformationLight		128 /* Draw only periferical */
#define GLI_C_lIsNotForceDefaultMaterial			256 /* Draw only periferical */
#define GLI_C_lIsNotForceColorMaterial				512 /* draw triangles with a single color set in the material*/
#define GLI_C_lIsTestingBackface					1024
#define GLI_C_lIsNotDrawingSuperObjectBoundingVolume 2048
#define GLI_C_lIsUseRLI								4096
#define GLI_C_lIsNotComputeSpecular					8192
/* #define GLI_C_lIsNotMakeWaterEffect					16384*/
/* FQ N64 Bug fix*/
#define GLI_C_lHasNotPriority						16384 /* 14eme bit : Means this object has no priority*/
#define GLI_C_lIsUseStaticLights					32768
#define GLI_C_lIsUseShadow							65536
#define GLI_C_lCameraIsUnderWater					131072
#define GLI_C_lNotForceZSorting						262144
#define GLI_C_lNotInvertBackfaces					524288
#define GLI_C_lNotHideWhatIsUnderWater				0x100000
#define GLI_C_lDrawNothing							0x200000
#define GLI_C_lIsNotChromed							0x400000
#define GLI_C_lIsNotVisibleInRealWorld				0x800000
#define GLI_C_lIsNotVisibleInSymetricWorld			0x1000000
#define GLI_C_lIsNotDrawingInMirror					0x2000000
#define GLI_C_lIsNotLightAlphaSensitive				0x4000000
#define GLI_C_lIsWriteZBuffer						0x8000000
#define GLI_C_lHasNoMirror							0x10000000
#define GLI_C_lIsNotSinusEffectOnRLI				0x20000000
#define GLI_C_lIsEnableZSorting						0x40000000
#define GLI_C_lHasNotSinusEffect					0x80000000
 
	
 
#define GLI_C_lIsSolid (GLI_C_lIsNotForceDefaultMaterial +				\
  GLI_C_lIsNotDrawCollideInformationLight  +      \
  GLI_C_lIsNotDrawCollideInformation +            \
  GLI_C_lIsNotWired +                             \
  GLI_C_lIsNotGrided +                            \
  GLI_C_lIsNotForceColorMaterial +                \
  GLI_C_lIsNotDoted +                             \
  GLI_C_lIsTestingBackface +						\
  GLI_C_lNotForceZSorting + \
  GLI_C_lNotInvertBackfaces + \
  GLI_C_lNotHideWhatIsUnderWater + \
  GLI_C_lIsNotChromed + \
  GLI_C_lIsNotOutlined+ \
  GLI_C_lIsNotVisibleInRealWorld+ \
  GLI_C_lIsNotLightAlphaSensitive+ \
  GLI_C_lIsNotVisibleInSymetricWorld+\
  GLI_C_lIsEnableZSorting+\
  GLI_C_lIsWriteZBuffer)
 
#define GLI_C_lAllIsEnable 0xFFFFFFFF
  
#define C_lMaxIndexInViewingList     20000
#define C_lGouraudLineElement ((GLI_C_lIsSolid | GLI_C_lIsGouraud)- GLI_C_lIsNotWired)
#define C_lGouraudElement      (GLI_C_lIsSolid | GLI_C_lIsGouraud)
#define C_lTexturedElement     (GLI_C_lIsSolid | GLI_C_lIsTextured | GLI_C_lIsGouraud)
#define C_lTexturedElementGrid ((GLI_C_lIsSolid | GLI_C_lIsTextured | GLI_C_lIsGouraud)- GLI_C_lIsNotGrided)
#define C_lBoldLineElement     (GLI_C_lIsNotDoted)
#define C_lBigDotsElement      (0)
  
#define ISI_tdxColorCompFac 256.f
#define ISI_tdxColorCompMax 32767
#define ISI_tdxColorCompMin -32768
/*typedef unsigned char ISI_tdxColorComp;*/
typedef short ISI_tdxColorComp;
 
/*Declaration of structure*/
typedef struct ISI_tdstColor_
{
  ISI_tdxColorComp xRed;
  ISI_tdxColorComp xGreen;
  ISI_tdxColorComp xBlue;
  ISI_tdxColorComp xAlpha;
}ISI_tdstColor;
	
/*ROMTEAM Ionut Grozea PLG Files 01-05-1998*/
#ifdef ACTIVE_EDITOR
typedef struct ISI_tdstObjectColor_
{
	int iNrVertex;
	char csName[255];
	ISI_tdstColor xVertexColor[1000];
}ISI_tdstObjectColor;
typedef struct ISI_tdstObjectColorStruct_
{
	int iNrObjects;
	ISI_tdstObjectColor objColor[100];
}ISI_tdstObjectColorStruct;
#endif
/*ENDROMTEAM Ionut Grozea PLG Files 01-05-1998*/
 
extern CPA_EXPORT void GLI_xClearViewingList ( void ) ;
 
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif
