From 71076ab1cae5fba638a264c997db9eb49ba6490f Mon Sep 17 00:00:00 2001 From: Molgrum Date: Mon, 20 Aug 2007 02:23:53 +0000 Subject: [PATCH] Made D3D compile, check this and rearrange however you like. Removed "gammaworks", copied GL_RoundDimensions and modded it for D3D (ugly, fix this), removed GetPalette and D_FlushCaches from vid_d3d9.c since it's already declared in vid_d3d.c, inserted vid_gamma (and I have no idea what this is good for, it seems it could just as well be a #define). Happy time! git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@2597 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/renderer.c | 4 ++++ engine/client/view.c | 21 +++++++++--------- engine/d3d/d3d_rmain.c | 7 +++--- engine/d3d9/d3d9_draw.c | 48 +++++++++++++++++++++++++++++++++++++++- engine/d3d9/d3d9_rmain.c | 7 +++--- engine/d3d9/vid_d3d9.c | 9 ++++---- engine/gl/gl_rmain.c | 2 -- 7 files changed, 75 insertions(+), 23 deletions(-) diff --git a/engine/client/renderer.c b/engine/client/renderer.c index 8991f9b3c..6d74fa757 100644 --- a/engine/client/renderer.c +++ b/engine/client/renderer.c @@ -65,6 +65,10 @@ cvar_t r_aliastransadj = SCVAR("r_aliastransadj", "100"); cvar_t d_smooth = SCVAR("d_smooth", "0"); cvar_t sw_surfcachesize = SCVARF("sw_surfcachesize", "0", CVAR_RENDERERLATCH); #endif +#if defined(RGLQUAKE) || defined(D3DQUAKE) +cvar_t gl_contrast = SCVAR("gl_contrast", "1"); +cvar_t gl_polyblend = SCVAR("gl_polyblend","1"); +#endif cvar_t gl_skyboxdist = SCVAR("gl_skyboxdist", "2300"); cvar_t r_vertexdlights = SCVAR("r_vertexdlights", "1"); diff --git a/engine/client/view.c b/engine/client/view.c index a2f010036..0a039d874 100644 --- a/engine/client/view.c +++ b/engine/client/view.c @@ -311,7 +311,7 @@ qbyte gammatable[256]; // palette is sent through this unsigned short ramps[3][256]; -extern qboolean gammaworks; +//extern qboolean gammaworks; float v_blend[4]; // rgba 0.0 - 1.0 /* void BuildGammaTable (float g) @@ -614,8 +614,9 @@ V_CalcBlend void GLV_CalcBlendServer (float colors[4]) { - extern qboolean gammaworks; - if (gammaworks || !v_blend[3]) +// extern qboolean gammaworks; +// if (gammaworks || !v_blend[3]) + if (!v_blend[3]) { //regular cshifts work through hardware gamma //server sent cshifts do not. colors[0] = cl.cshifts[CSHIFT_SERVER].destcolor[0]/255.0f; @@ -688,7 +689,7 @@ V_UpdatePalette */ void GLV_UpdatePalette (qboolean force) { - qboolean ogw; +// qboolean ogw; int i, j; qboolean update; // qbyte *basepal, *newpal; @@ -754,12 +755,12 @@ void GLV_UpdatePalette (qboolean force) ramps[2][i] = gammatable[ib]<<8; } - ogw = gammaworks; - VID_ShiftPalette (NULL); - if (ogw != gammaworks) - { - Con_DPrintf("Gamma working state %i\n", gammaworks); - } +// ogw = gammaworks; +// VID_ShiftPalette (NULL); +// if (ogw != gammaworks) +// { +// Con_DPrintf("Gamma working state %i\n", gammaworks); +// } } RSpeedEnd(RSPEED_PALETTEFLASHES); diff --git a/engine/d3d/d3d_rmain.c b/engine/d3d/d3d_rmain.c index 793a08c29..700026370 100644 --- a/engine/d3d/d3d_rmain.c +++ b/engine/d3d/d3d_rmain.c @@ -883,9 +883,10 @@ void D3D_DrawWorld(void) currententity = &ent; #ifdef TERRAIN - if (currentmodel->type == mod_heightmap) - GL_DrawHeightmapModel(currententity); - else +// FIXME: Dunno what needs to be fixed here? +// if (currentmodel->type == mod_heightmap) +// D3D_DrawHeightmapModel(currententity); +// else #endif { // qglColor3f (1,1,1); diff --git a/engine/d3d9/d3d9_draw.c b/engine/d3d9/d3d9_draw.c index 6193b9fd2..7cc33f39b 100644 --- a/engine/d3d9/d3d9_draw.c +++ b/engine/d3d9/d3d9_draw.c @@ -11,6 +11,9 @@ void *d3dballtexture; LPDIRECT3DBASETEXTURE9 d3d9chars_tex; mpic_t *conback_tex; +extern cvar_t gl_picmip; +extern cvar_t gl_picmip2d; + typedef struct d3dcachepic_s { char name[MAX_QPATH]; @@ -101,6 +104,49 @@ static void Upload_Texture_32(LPDIRECT3DTEXTURE9 surf, unsigned int *data, int w IDirect3DTexture9_UnlockRect(surf, 0); } +void D3D9_RoundDimensions(int *scaled_width, int *scaled_height, qboolean mipmap) +{ +// if (gl_config.arb_texture_non_power_of_two) //NPOT is a simple extension that relaxes errors. +// { +// TRACE(("dbg: GL_RoundDimensions: GL_ARB_texture_non_power_of_two\n")); +// } +// else + { + int width = *scaled_width; + int height = *scaled_height; + for (*scaled_width = 1 ; *scaled_width < width ; *scaled_width<<=1) + ; + for (*scaled_height = 1 ; *scaled_height < height ; *scaled_height<<=1) + ; + } + + if (mipmap) + { + TRACE(("dbg: GL_RoundDimensions: %f\n", gl_picmip.value)); + *scaled_width >>= (int)gl_picmip.value; + *scaled_height >>= (int)gl_picmip.value; + } + else + { + *scaled_width >>= (int)gl_picmip2d.value; + *scaled_height >>= (int)gl_picmip2d.value; + } + + TRACE(("dbg: GL_RoundDimensions: %f\n", gl_max_size.value)); + if (gl_max_size.value) + { + if (*scaled_width > gl_max_size.value) + *scaled_width = gl_max_size.value; + if (*scaled_height > gl_max_size.value) + *scaled_height = gl_max_size.value; + } + + if (*scaled_width < 1) + *scaled_width = 1; + if (*scaled_height < 1) + *scaled_height = 1; +} + void D3D9_MipMap (qbyte *out, qbyte *in, int width, int height) { int i, j; @@ -135,7 +181,7 @@ LPDIRECT3DBASETEXTURE9 D3D9_LoadTexture_32(char *name, unsigned int *data, int w nwidth = width; nheight = height; - GL_RoundDimensions(&nwidth, &nheight, flags & TF_MIPMAP); + D3D9_RoundDimensions(&nwidth, &nheight, flags & TF_MIPMAP); IDirect3DDevice9_CreateTexture(pD3DDev9, nwidth, nheight, 0, 0|((flags & TF_MIPMAP)?D3DUSAGE_AUTOGENMIPMAP:0), D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &newsurf, NULL); diff --git a/engine/d3d9/d3d9_rmain.c b/engine/d3d9/d3d9_rmain.c index a30ce85a2..eb2bf6acb 100644 --- a/engine/d3d9/d3d9_rmain.c +++ b/engine/d3d9/d3d9_rmain.c @@ -1296,9 +1296,10 @@ void D3D9_DrawWorld(void) currententity = &ent; #ifdef TERRAIN - if (currentmodel->type == mod_heightmap) - GL_DrawHeightmapModel(currententity); - else +// FIXME: Dunno what needs to be fixed here? +// if (currentmodel->type == mod_heightmap) +// D3D9_DrawHeightmapModel(currententity); +// else #endif { // qglColor3f (1,1,1); diff --git a/engine/d3d9/vid_d3d9.c b/engine/d3d9/vid_d3d9.c index 013f46ec7..3a78bfd6d 100644 --- a/engine/d3d9/vid_d3d9.c +++ b/engine/d3d9/vid_d3d9.c @@ -75,7 +75,7 @@ qboolean r_cache_thrash; // set if thrashing the surface cache mpic_t *draw_disc; // also used on sbar int d3d9width, d3d9height; - +#if 0 #if !defined(SWQUAKE) && !defined(RGLQUAKE) qbyte GetPalette(int red, int green, int blue) { @@ -104,6 +104,7 @@ qbyte GetPalette(int red, int green, int blue) } } #endif +#endif void BuildGammaTable (float g, float c); void D3D9_VID_GenPaletteTables (unsigned char *palette) @@ -175,13 +176,13 @@ void D3D9_VID_GenPaletteTables (unsigned char *palette) if (pD3DDev9) IDirect3DDevice9_SetGammaRamp(pD3DDev9, 0, D3DSGR_NO_CALIBRATION, ramps); } - +#if 0 #if !defined(SWQUAKE) && !defined(GLQUAKE) void D_FlushCaches (void) { } #endif - +#endif /* @@ -1067,7 +1068,7 @@ index_t d3d9quadindexes[6] = { }; extern cvar_t gl_contrast; - extern float vid_gamma; + float vid_gamma = 1.0; float f; unsigned int colour; diff --git a/engine/gl/gl_rmain.c b/engine/gl/gl_rmain.c index f2e69f5ef..124433e3a 100644 --- a/engine/gl/gl_rmain.c +++ b/engine/gl/gl_rmain.c @@ -111,12 +111,10 @@ cvar_t gl_clear = SCVAR("gl_clear","0"); cvar_t gl_cull = SCVAR("gl_cull","1"); cvar_t gl_smoothmodels = SCVAR("gl_smoothmodels","1"); cvar_t gl_affinemodels = SCVAR("gl_affinemodels","0"); -cvar_t gl_polyblend = SCVAR("gl_polyblend","1"); cvar_t gl_playermip = SCVAR("gl_playermip","0"); cvar_t gl_keeptjunctions = SCVAR("gl_keeptjunctions","1"); cvar_t gl_reporttjunctions = SCVAR("gl_reporttjunctions","0"); cvar_t gl_finish = SCVAR("gl_finish","0"); -cvar_t gl_contrast = SCVAR("gl_contrast", "1"); cvar_t gl_dither = SCVAR("gl_dither", "1"); cvar_t gl_maxdist = SCVAR("gl_maxdist", "8192"); extern cvar_t gl_mindist;