1 /*******************************************************
2 	gl_refl.h
3 
4 	by:
5 		Matt Ownby	- original code
6 		dukey		- rewrote most of the above :)
7 		spike		- helped me with the matrix maths
8 		jitspoe		- shaders
9 
10 
11 	adds reflective water to the Quake2 engine
12 
13 *******************************************************/
14 
15 void		R_init_refl(int maxNoReflections);
16 void		R_shutdown_refl(void);
17 void		R_setupArrays(int maxNoReflections);
18 void		R_clear_refl(void);
19 void		R_add_refl(float x, float y, float z, float normalX, float normalY, float normalZ, float distance2);
20 int		txm_genTexObject(unsigned char *texData, int w, int h,
21                                  int format, qboolean repeat, qboolean mipmap);
22 void		R_RecursiveFindRefl(mnode_t * node);
23 void		R_DrawDebugReflTexture(void);
24 void		R_UpdateReflTex(refdef_t * fd);
25 void		R_DoReflTransform(qboolean update);
26 void		R_LoadReflMatrix(void);
27 void		R_ClearReflMatrix(void);
28 void		setupClippingPlanes(void);
29 void		drawPlayerReflection(void);
30 
31 /* vars other files need access to */
32 extern qboolean	g_drawing_refl;
33 extern qboolean	g_refl_enabled;
34 extern unsigned int g_reflTexW, g_reflTexH;
35 extern float	g_refl_aspect;
36 extern float   *g_refl_X;
37 extern float   *g_refl_Y;
38 extern float   *g_refl_Z;
39 extern float   *g_waterDistance2;
40 extern int     *g_tex_num;
41 extern int	g_active_refl;
42 extern int	g_num_refl;
43 extern vec3_t  *waterNormals;
44 
45 
46 extern unsigned int gWaterProgramId;
47 extern image_t *distortTex;
48 extern image_t *waterNormalTex;
49 extern qboolean	brightenTexture;
50