From c75305f9bfb8ed2349a970519c0d5bb88e7adc1b Mon Sep 17 00:00:00 2001 From: TimeServ Date: Thu, 3 Mar 2011 13:32:27 +0000 Subject: [PATCH] hack in overbright into d3d path, isolate d3 map support into MAP_PROC define so hopefully minimal can build again git-svn-id: https://svn.code.sf.net/p/fteqw/code/branches/wip@3743 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/r_d3.c | 6 +++++- engine/client/r_surf.c | 2 ++ engine/d3d/d3d_backend.c | 23 +++++++++++++++++++++++ engine/d3d/vid_d3d.c | 2 ++ engine/gl/gl_rmisc.c | 2 ++ engine/gl/glquake.h | 2 ++ 6 files changed, 36 insertions(+), 1 deletion(-) diff --git a/engine/client/r_d3.c b/engine/client/r_d3.c index 9664b1687..1b69426c8 100644 --- a/engine/client/r_d3.c +++ b/engine/client/r_d3.c @@ -1,4 +1,6 @@ #include "quakedef.h" +#ifdef MAP_PROC + #ifndef SERVERONLY #include "shader.h" #endif @@ -558,4 +560,6 @@ qboolean D3_LoadMap_CollisionMap(model_t *mod, char *buf) } #endif return true; -} \ No newline at end of file +} + +#endif \ No newline at end of file diff --git a/engine/client/r_surf.c b/engine/client/r_surf.c index 2ace55792..9b3c20d16 100644 --- a/engine/client/r_surf.c +++ b/engine/client/r_surf.c @@ -2161,11 +2161,13 @@ void Surf_DrawWorld (void) } else #endif +#ifdef MAP_PROC if (cl.worldmodel->fromgame == fg_doom3) { vis = D3_CalcVis(cl.worldmodel, r_refdef.vieworg); } else +#endif { //extern cvar_t temp1; if (0)//temp1.value) diff --git a/engine/d3d/d3d_backend.c b/engine/d3d/d3d_backend.c index d09d4d28b..b76b1469a 100644 --- a/engine/d3d/d3d_backend.c +++ b/engine/d3d/d3d_backend.c @@ -626,6 +626,29 @@ static void SelectPassTexture(unsigned int tu, shaderpass_t *pass) // IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_ALPHAARG2, D3DTA_CURRENT); IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1); break; + case PBM_OVERBRIGHT: + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_COLORARG1, D3DTA_TEXTURE); + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_COLORARG2, D3DTA_CURRENT); + { + extern cvar_t gl_overbright; + switch (gl_overbright.ival) + { + case 1: + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_COLOROP, D3DTOP_MODULATE2X); + break; + case 2: + case 3: + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_COLOROP, D3DTOP_MODULATE4X); + break; + default: + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_COLOROP, D3DTOP_MODULATE); + break; + } + } + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_ALPHAARG2, D3DTA_CURRENT); + IDirect3DDevice9_SetTextureStageState(pD3DDev9, tu, D3DTSS_ALPHAOP, D3DTOP_MODULATE); + break; default: case PBM_MODULATE: forcemod: diff --git a/engine/d3d/vid_d3d.c b/engine/d3d/vid_d3d.c index 02e19294e..b791fee09 100644 --- a/engine/d3d/vid_d3d.c +++ b/engine/d3d/vid_d3d.c @@ -735,8 +735,10 @@ static void (D3D9_R_NewMap) (void) R_AnimateLight(); Surf_BuildLightmaps(); +#ifdef MAP_PROC if (cl.worldmodel && cl.worldmodel->fromgame == fg_doom3) D3_GenerateAreas(cl.worldmodel); +#endif /*wipe any lingering particles*/ P_ClearParticles(); diff --git a/engine/gl/gl_rmisc.c b/engine/gl/gl_rmisc.c index 84f134692..69a09dd86 100644 --- a/engine/gl/gl_rmisc.c +++ b/engine/gl/gl_rmisc.c @@ -973,8 +973,10 @@ TRACE(("dbg: GLR_NewMap: tp\n")); TP_NewMap(); R_SetSky(cl.skyname); +#ifdef MAP_PROC if (cl.worldmodel->fromgame == fg_doom3) D3_GenerateAreas(cl.worldmodel); +#endif #ifdef RTLIGHTS if (r_shadow_realtime_dlight.ival || r_shadow_realtime_world.ival) diff --git a/engine/gl/glquake.h b/engine/gl/glquake.h index 1140a899e..dbd2b34b3 100644 --- a/engine/gl/glquake.h +++ b/engine/gl/glquake.h @@ -354,9 +354,11 @@ qboolean GL_LoadHeightmapModel (model_t *mod, void *buffer); #ifdef MAP_DOOM void GLR_DoomWorld(); #endif +#ifdef MAP_PROC qboolean D3_LoadMap_CollisionMap(model_t *mod, char *buf); unsigned char *D3_CalcVis(model_t *mod, vec3_t org); void D3_GenerateAreas(model_t *mod); +#endif //gl_bloom.c #ifdef GLQUAKE