]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - render.h
changed postprocess shader to use Texture_GammaRamps instead of
[xonotic/darkplaces.git] / render.h
index d60e8e407ff9455ed41f904b113cf6c93a3bdfdf..bd3cd1bf2f81a6b7a386fed2c441421ed35ea546 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
@@ -307,13 +303,14 @@ typedef struct rsurfacestate_s
        vec3_t colormap_shirtcolor;
        // view location in model space
        vec3_t modelorg; // TODO: rename this
+       // polygon offset data for submodels
+       float basepolygonfactor;
+       float basepolygonoffset;
        // current texture in batching code
        texture_t *texture;
        // 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
@@ -342,7 +339,7 @@ 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);
 
@@ -366,7 +363,35 @@ typedef enum rsurfacepass_e
 }
 rsurfacepass_t;
 
-int R_SetupSurfaceShader(const vec3_t lightcolorbase, qboolean modellighting, float ambientscale, float diffusescale, float specularscale, rsurfacepass_t pass);
+typedef enum gl20_texunit_e
+{
+       GL20TU_FIRST = 0,
+       GL20TU_SECOND = 1,
+       GL20TU_GAMMARAMPS = 2,
+       GL20TU_NORMAL = 0,
+       GL20TU_COLOR = 1,
+       GL20TU_GLOSS = 2,
+       GL20TU_GLOW = 3,
+       GL20TU_SECONDARY_NORMAL = 4,
+       GL20TU_SECONDARY_COLOR = 5,
+       GL20TU_SECONDARY_GLOSS = 6,
+       GL20TU_SECONDARY_GLOW = 7,
+       GL20TU_PANTS = 8,
+       GL20TU_SHIRT = 9,
+       GL20TU_FOGMASK = 10,
+       GL20TU_LIGHTMAP = 11,
+       GL20TU_DELUXEMAP = 12,
+       GL20TU_REFRACTION = 13,
+       GL20TU_REFLECTION = 14,
+       GL20TU_ATTENUATION = 3,
+       GL20TU_CUBE = 13,
+}
+gl20_texunit;
+
+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