// these are exposed because surface rendering uses them
extern rtexture_t *solidskytexture;
extern rtexture_t *alphaskytexture;
-extern rtexture_t *mergeskytexture;
extern int skyrendernow, skyrendermasked, skyrenderglquake;
-extern cvar_t r_mergesky;
extern void R_SkyStartFrame(void);
extern void R_Sky(void);
// render profiling stuff
extern qboolean intimerefresh;
-extern cvar_t r_speeds2;
-extern char r_speeds2_string[1024];
+extern char r_speeds_string[1024];
// lighting stuff
extern vec3_t lightspot;
//=============================================================================
-typedef struct
-{
- // area to render in
- int x, y, width, height;
- float fov_x, fov_y;
-
- // view point
- vec3_t vieworg;
- vec3_t viewangles;
-
- int numdecals;
- renderdecal_t *decals;
-
- // LordHavoc: this will be enabled at some point, taking the place of cl_visedicts
- int numentities;
- entity_render_t *entities;
-
- int numparticles;
- struct renderparticle_s *particles;
-}
-refdef_t;
-
//extern qboolean r_cache_thrash; // compatability
extern entity_render_t *currentrenderentity;
extern int r_framecount;
extern vec3_t vright;
extern vec3_t r_origin;
-//
-// screen size info
-//
-extern refdef_t r_refdef;
-
-
extern mleaf_t *r_viewleaf, *r_oldviewleaf;
extern unsigned short d_lightstylevalue[256]; // 8.8 fraction of base light value
void R_RenderView (void); // must set r_refdef first
-void R_InitSky (byte *src, int bytesperpixel); // called at level load
+void R_InitSky (qbyte *src, int bytesperpixel); // called at level load
//int R_VisibleCullBox (vec3_t mins, vec3_t maxs);
void R_NewMap (void);
-void R_Decals_Init(void);
-void R_DrawDecals(void);
-
void R_DrawWorld(void);
void R_SetupForWorldRendering(void);
void R_MarkWorldLights(void);
void R_PrepareSurfaces(void);
-void R_DrawSurfacesAll(void);
+void R_DrawSurfaces(int type);
void R_DrawPortals(void);
void R_DrawParticles(void);
void R_DrawExplosions(void);
extern vec_t fogdensity;
//#define calcfog(v) (exp(-(fogdensity*fogdensity*(((v)[0] - r_origin[0]) * vpn[0] + ((v)[1] - r_origin[1]) * vpn[1] + ((v)[2] - r_origin[2]) * vpn[2])*(((v)[0] - r_origin[0]) * vpn[0] + ((v)[1] - r_origin[1]) * vpn[1] + ((v)[2] - r_origin[2]) * vpn[2]))))
#define calcfog(v) (exp(-(fogdensity*fogdensity*(((v)[0] - r_origin[0])*((v)[0] - r_origin[0])+((v)[1] - r_origin[1])*((v)[1] - r_origin[1])+((v)[2] - r_origin[2])*((v)[2] - r_origin[2])))))
-#define calcfogbyte(v) ((byte) (bound(0, ((int) ((float) (calcfog((v)) * 255.0f))), 255)))
+#define calcfogbyte(v) ((qbyte) (bound(0, ((int) ((float) (calcfog((v)) * 255.0f))), 255)))
#include "r_modules.h"
-extern qboolean lighthalf;
+extern float overbrightscale;
#include "r_lerpanim.h"
#define MAX_PARTICLETEXTURES 64
// [0] is normal, [1] is fog, they may be the same
extern particletexture_t particletexture[MAX_PARTICLETEXTURES][2];
+
+void R_TimeReport(char *name);
+void R_TimeReport_Start(void);
+void R_TimeReport_End(void);
+
+// r_stain
+void R_Stain (vec3_t origin, float radius, int cr1, int cg1, int cb1, int ca1, int cr2, int cg2, int cb2, int ca2);