void R_InitSky (unsigned char *src, int bytesperpixel); // called at level load
+void R_SkinFrame_PrepareForPurge(void);
+void R_SkinFrame_MarkUsed(skinframe_t *skinframe);
+void R_SkinFrame_Purge(void);
+skinframe_t *R_SkinFrame_Find(const char *name, int textureflags, int comparewidth, int compareheight, int comparecrc, qboolean add);
+skinframe_t *R_SkinFrame_LoadExternal(const char *name, int textureflags, qboolean complain);
+skinframe_t *R_SkinFrame_LoadInternal(const char *name, int textureflags, int loadpantsandshirt, int loadglowtexture, const unsigned char *skindata, int width, int height, int bitsperpixel, const unsigned int *palette, const unsigned int *alphapalette);
+skinframe_t *R_SkinFrame_LoadMissing(void);
+
void R_View_WorldVisibility();
void R_DrawParticles(void);
void R_DrawExplosions(void);
void R_Stain(const vec3_t origin, float radius, int cr1, int cg1, int cb1, int ca1, int cr2, int cg2, int cb2, int ca2);
void R_CalcBeam_Vertex3f(float *vert, const vec3_t org1, const vec3_t org2, float width);
-void R_DrawSprite(int blendfunc1, int blendfunc2, rtexture_t *texture, rtexture_t *fogtexture, int depthdisable, const vec3_t origin, const vec3_t left, const vec3_t up, float scalex1, float scalex2, float scaley1, float scaley2, float cr, float cg, float cb, float ca);
+void R_DrawSprite(int blendfunc1, int blendfunc2, rtexture_t *texture, rtexture_t *fogtexture, qboolean depthdisable, qboolean depthshort, const vec3_t origin, const vec3_t left, const vec3_t up, float scalex1, float scalex2, float scaley1, float scaley2, float cr, float cg, float cb, float ca);
extern mempool_t *r_main_mempool;
extern float *rsurface_lightmapcolor4f;
extern int rsurface_lightmapcolor4f_bufferobject;
extern size_t rsurface_lightmapcolor4f_bufferoffset;
+extern matrix4x4_t rsurface_matrix;
+extern matrix4x4_t rsurface_inversematrix;
+extern frameblend_t rsurface_frameblend[4];
+extern vec3_t rsurface_modellight_ambient;
+extern vec3_t rsurface_modellight_diffuse;
+extern vec3_t rsurface_modellight_lightdir;
+extern vec3_t rsurface_colormap_pantscolor;
+extern vec3_t rsurface_colormap_shirtcolor;
extern vec3_t rsurface_modelorg;
extern qboolean rsurface_generatedvertex;
-extern const entity_render_t *rsurface_entity;
extern const model_t *rsurface_model;
extern texture_t *rsurface_texture;
extern qboolean rsurface_uselightmaptexture;
void R_UpdateTextureInfo(const entity_render_t *ent, texture_t *t);
void R_UpdateAllTextureInfo(entity_render_t *ent);
void R_QueueTextureSurfaceList(int texturenumsurfaces, msurface_t **texturesurfacelist);
-void R_DrawWorldSurfaces(qboolean skysurfaces);
-void R_DrawModelSurfaces(entity_render_t *ent, qboolean skysurfaces);
+void R_DrawWorldSurfaces(qboolean skysurfaces, qboolean writedepth, qboolean depthonly);
+void R_DrawModelSurfaces(entity_render_t *ent, qboolean skysurfaces, qboolean writedepth, qboolean depthonly);
void RSurf_PrepareVerticesForBatch(qboolean generatenormals, qboolean generatetangents, int texturenumsurfaces, msurface_t **texturesurfacelist);
void RSurf_DrawBatch_Simple(int texturenumsurfaces, msurface_t **texturesurfacelist);