]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - render.h
some surface rendering code cleanup
[xonotic/darkplaces.git] / render.h
index be4915d70b348d20b6b0dd49039ffe7dcb5cf949..d89e274c6b8590bc17fcf3a3912b2473f49aa05c 100644 (file)
--- a/render.h
+++ b/render.h
@@ -124,8 +124,14 @@ void R_Init(void);
 void R_UpdateVariables(void); // must call after setting up most of r_refdef, but before calling R_RenderView
 void R_RenderView(void); // must set r_refdef and call R_UpdateVariables first
 
+typedef enum r_refdef_scene_type_s {
+       RST_CLIENT,
+       RST_MENU,
+       RST_COUNT
+} r_refdef_scene_type_t;
 
-void R_InitSky (unsigned char *src, int bytesperpixel); // called at level load
+void R_SelectScene( r_refdef_scene_type_t scenetype );
+r_refdef_scene_t * R_GetScenePointer( r_refdef_scene_type_t scenetype );
 
 void R_SkinFrame_PrepareForPurge(void);
 void R_SkinFrame_MarkUsed(skinframe_t *skinframe);
@@ -194,16 +200,6 @@ void R_DrawSprite(int blendfunc1, int blendfunc2, rtexture_t *texture, rtexture_
 
 extern mempool_t *r_main_mempool;
 
-typedef enum rsurfmode_e
-{
-       RSURFMODE_NONE,
-       RSURFMODE_SHOWSURFACES,
-       RSURFMODE_SKY,
-       RSURFMODE_MULTIPASS,
-       RSURFMODE_GLSL
-}
-rsurfmode_t;
-
 typedef struct rsurfacestate_s
 {
        // processing buffers
@@ -315,8 +311,6 @@ typedef struct rsurfacestate_s
        // whether lightmapping is active on this batch
        // (otherwise vertex colored)
        qboolean uselightmaptexture;
-       // one of the RSURFMODE_ values
-       rsurfmode_t mode;
 
        // rtlight rendering
        // light currently being rendered
@@ -345,7 +339,6 @@ extern rsurfacestate_t rsurface;
 
 void RSurf_ActiveWorldEntity(void);
 void RSurf_ActiveModelEntity(const entity_render_t *ent, qboolean wantnormals, qboolean wanttangents);
-void RSurf_CleanUp(void);
 void RSurf_SetupDepthAndCulling(void);
 
 void R_Mesh_ResizeArrays(int newvertices);
@@ -372,6 +365,8 @@ rsurfacepass_t;
 
 typedef enum gl20_texunit_e
 {
+       GL20TU_FIRST = 0,
+       GL20TU_SECOND = 1,
        GL20TU_NORMAL = 0,
        GL20TU_COLOR = 1,
        GL20TU_GLOSS = 2,
@@ -392,7 +387,10 @@ typedef enum gl20_texunit_e
 }
 gl20_texunit;
 
-int R_SetupSurfaceShader(const vec3_t lightcolorbase, qboolean modellighting, float ambientscale, float diffusescale, float specularscale, rsurfacepass_t pass);
+void R_SetupGenericShader(qboolean usetexture);
+void R_SetupGenericTwoTextureShader(int texturemode);
+void R_SetupDepthOrShadowShader(void);
+void R_SetupSurfaceShader(const vec3_t lightcolorbase, qboolean modellighting, float ambientscale, float diffusescale, float specularscale, rsurfacepass_t rsurfacepass);
 
 #endif