- r_tvMode is now r_virtualMode
- r_virtualMode now takes the same modes from r_mode, rather than specifically 640x480 and 320x240 - cleaning up a bunch of warnings and general code refactoring - r_lightmapBits - specify color depth of the lightmap - added a few more r_modes - r_iconBits - specify the color depth of icon elements, saves a bit of vram and the loss is questionably perceptable with all those flat colors anyway - r_textureDither - work in progress dither for 16-bit textures - deprecate r_shadeSpecular - safelewd: load from models/player, so we can hit models/playerfs/ directory
This commit is contained in:
@@ -1589,7 +1589,7 @@ void RB_DrawAccumBlur (void)
|
||||
float accblur;
|
||||
static float damagetime = -1.0f;
|
||||
|
||||
if (r_tvMode->integer) return; // tvmode causes this to crash
|
||||
if (r_tvMode->integer > -1) return; // tvmode causes this to crash
|
||||
if (!r_motionblur->integer) return;
|
||||
if (r_motionblur->integer > 1) return; // don't do it for the other motion blur techniques
|
||||
|
||||
|
@@ -680,6 +680,7 @@ static void ID_INLINE R_Bloom_QuadTV( int width, int height, float texX, float t
|
||||
|
||||
|
||||
|
||||
|
||||
if (aa == 0){ xaa = 0; yaa = 0; }
|
||||
if (aa == 1){ xaa = -xpix; yaa = ypix; }
|
||||
if (aa == 2){ xaa = -xpix; yaa = -ypix; }
|
||||
@@ -702,6 +703,16 @@ static void ID_INLINE R_Bloom_QuadTV( int width, int height, float texX, float t
|
||||
// qglViewport (0, 0, tvWidth, tvHeight );
|
||||
// qglScissor (0, 0, tvWidth, tvHeight );
|
||||
qglBegin( GL_QUADS );
|
||||
if (r_tvFilter->integer) // bilinear filter
|
||||
{
|
||||
qglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );
|
||||
qglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
|
||||
}
|
||||
else
|
||||
{
|
||||
qglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
|
||||
qglTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
|
||||
}
|
||||
qglColor4f( 0.0, 0.0, 0.0, 1 );
|
||||
qglVertex2f(0,0 );
|
||||
qglVertex2f(0,height);
|
||||
@@ -784,30 +795,6 @@ static void R_Bloom_RestoreScreen_Postprocessed( void ) {
|
||||
if (program->u_CC_Saturation > -1) R_GLSL_SetUniform_u_CC_Saturation(program, 1.0);
|
||||
if (program->u_CC_Contrast > -1) R_GLSL_SetUniform_u_CC_Contrast(program, 1.0);
|
||||
|
||||
// Lazy wrapper for ruby/retroarch shaders, because i'm lazy at modifying them. haha. Will probably be removed in the future if things suck.
|
||||
/*
|
||||
{
|
||||
float rts_x, rts_y;
|
||||
float ris_x, ris_y;
|
||||
float ros_x, ros_y;
|
||||
|
||||
rts_x = glConfig.vidWidth;
|
||||
rts_y = glConfig.vidHeight;
|
||||
|
||||
ris_x = glConfig.vidWidth;
|
||||
ris_y = glConfig.vidHeight;
|
||||
|
||||
ros_x = tvWidth;
|
||||
ros_y = tvHeight;
|
||||
|
||||
if (program->rubyTextureSize > -1) R_GLSL_SetUniform_rubyTextureSize(program, rts_x, rts_y);
|
||||
if (program->rubyInputSize > -1) R_GLSL_SetUniform_rubyInputSize(program, ris_x, ris_y);
|
||||
if (program->rubyOutputSize > -1) R_GLSL_SetUniform_rubyOutputSize(program, ros_x, ros_y);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
if (program->u_zFar > -1) R_GLSL_SetUniform_u_zFar(program, tr.viewParms.zFar);
|
||||
GL_SelectTexture(0);
|
||||
@@ -1122,7 +1109,7 @@ static void R_Postprocess_InitTextures( void )
|
||||
|
||||
// leilei - tv output texture
|
||||
|
||||
if (r_tvMode->integer){
|
||||
if (r_tvMode->integer > -1){
|
||||
// find closer power of 2 to screen size
|
||||
for (postproc.tv.width = 1;postproc.tv.width< tvWidth;postproc.tv.width *= 2);
|
||||
for (postproc.tv.height = 1;postproc.tv.height < tvHeight;postproc.tv.height *= 2);
|
||||
@@ -1915,7 +1902,6 @@ void R_MblurScreenPost( void )
|
||||
static void R_Postprocess_BackupScreenTV( void ) {
|
||||
|
||||
int intdiv;
|
||||
// if (r_tvMode->integer > 1) intdiv = 2;
|
||||
intdiv = 1;
|
||||
|
||||
|
||||
@@ -1932,10 +1918,6 @@ static void R_Postprocess_BackupScreenTV( void ) {
|
||||
GL_Bind( postproc.screen.texture );
|
||||
qglCopyTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 0, 0, glConfig.vidWidth, glConfig.vidHeight);
|
||||
|
||||
|
||||
//qglCopyTexSubImage2D( GL_TEXTURE_2D, 0, 0, 0, 0, 0, 320, 240);
|
||||
|
||||
|
||||
}
|
||||
|
||||
static void R_Postprocess_ScaleTV( void ) {
|
||||
@@ -1946,12 +1928,7 @@ static void R_Postprocess_ScaleTV( void ) {
|
||||
qglViewport( 0, 0, glConfig.vidWidth, glConfig.vidHeight );
|
||||
qglMatrixMode( GL_PROJECTION );
|
||||
qglLoadIdentity ();
|
||||
// qglOrtho( 0, glConfig.vidWidth, glConfig.vidHeight, 0, 0,1 );
|
||||
// qglMatrixMode( GL_MODELVIEW );
|
||||
// qglLoadIdentity ();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1962,7 +1939,7 @@ float tvtime;
|
||||
|
||||
void R_TVScreen( void )
|
||||
{
|
||||
if( !r_tvMode->integer)
|
||||
if( r_tvMode->integer < 0)
|
||||
return;
|
||||
if ( backEnd.donetv)
|
||||
return;
|
||||
|
@@ -185,7 +185,6 @@ void R_GLSLPalette ( const unsigned char *palette)
|
||||
{
|
||||
int i;
|
||||
|
||||
int red, green, blue;
|
||||
float redf, greenf, bluef;
|
||||
|
||||
if ( palette )
|
||||
@@ -193,16 +192,10 @@ void R_GLSLPalette ( const unsigned char *palette)
|
||||
|
||||
for ( i = 0; i < 256; i++ )
|
||||
{
|
||||
|
||||
red = d_8to24table[i] & 0xff;
|
||||
green = ( d_8to24table[i] >> 8 ) & 0xff;
|
||||
blue = ( d_8to24table[i] >> 16 ) & 0xff;
|
||||
redf = (d_8to24table[i] & 0xff) * 0.003921568627451;
|
||||
greenf = (( d_8to24table[i] >> 8 ) & 0xff) * 0.003921568627451;
|
||||
bluef = (( d_8to24table[i] >> 16 ) & 0xff) * 0.003921568627451;
|
||||
//ri.Printf( PRINT_ALL, " vec3(%i, %i, %i),\n", red, green, blue );
|
||||
ri.Printf( PRINT_ALL, " vec3(%f, %f, %f),\n", redf, greenf, bluef );
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -563,7 +556,6 @@ R_ImageListMapOnly_f
|
||||
*/
|
||||
void R_ImageListMapOnly_f( void ) {
|
||||
int i;
|
||||
int estTotalSize = 0;
|
||||
|
||||
for ( i = 0 ; i < tr.numImages ; i++ )
|
||||
{
|
||||
@@ -592,9 +584,6 @@ void R_ImageListMapOnly_f( void ) {
|
||||
}
|
||||
}
|
||||
|
||||
// ri.Printf (PRINT_ALL, " ---------\n");
|
||||
// ri.Printf (PRINT_ALL, " approx %i bytes\n", estTotalSize);
|
||||
// ri.Printf (PRINT_ALL, " %i total images\n\n", tr.numImages );
|
||||
}
|
||||
|
||||
|
||||
@@ -974,7 +963,7 @@ static void R_MipMap (byte *in, int width, int height) {
|
||||
static void R_MipMap8 (byte *in, int width, int height)
|
||||
{
|
||||
int i, j;
|
||||
byte *out, *at1, *at2, *at3, *at4;
|
||||
byte *out, *at1;//, *at2, *at3, *at4;
|
||||
|
||||
height >>= 1;
|
||||
out = in;
|
||||
@@ -984,9 +973,9 @@ static void R_MipMap8 (byte *in, int width, int height)
|
||||
for (j=0 ; j<width ; j+=2, out+=1, in+=2)
|
||||
{
|
||||
at1 = in[0];
|
||||
at2 = in[1];
|
||||
at3 = in[width+0];
|
||||
at4 = in[width+1];
|
||||
// at2 = in[1];
|
||||
// at3 = in[width+0];
|
||||
// at4 = in[width+1];
|
||||
out[0] = at1;
|
||||
}
|
||||
}
|
||||
@@ -1106,16 +1095,14 @@ static void DumpTex( unsigned *data,
|
||||
byte *scan;
|
||||
byte *baffer, *alffer, *flipper;
|
||||
scan = ((byte *)data);
|
||||
size_t offset = 0, memcount;
|
||||
int padlen;
|
||||
int be, bi, ber, ba;
|
||||
size_t offset = 0;//, memcount;
|
||||
int padlen = 0;
|
||||
int be, ber;
|
||||
int scrale = width * height;
|
||||
int scravg = width + height / 2;
|
||||
int wit = width;
|
||||
int hat = height;
|
||||
int quality = 85; // estimate quality from total size
|
||||
int hasalf = 0;
|
||||
float countw, counth;
|
||||
float countw = 0;
|
||||
|
||||
if (scravg > 511) quality = 42; // huge textures
|
||||
else if (scravg > 255) quality = 62; // large textures
|
||||
@@ -1128,13 +1115,8 @@ static void DumpTex( unsigned *data,
|
||||
// I'm gonna flip......
|
||||
int alfcnt = 0;
|
||||
|
||||
countw = 0;
|
||||
counth = 0;
|
||||
|
||||
|
||||
wit = width * 3;
|
||||
hat = height * 3;
|
||||
|
||||
for (be=0; be<scrale; be++){
|
||||
int bib;
|
||||
|
||||
@@ -1162,7 +1144,7 @@ static void DumpTex( unsigned *data,
|
||||
|
||||
|
||||
|
||||
memcount = (width * 3 + padlen) * height;
|
||||
//memcount = (width * 3 + padlen) * height;
|
||||
if ((width > 16) && (height > 16)){
|
||||
RE_SaveJPG( va("dump/%s.jpg", dumpname), 85,width, height, baffer, padlen);
|
||||
if (hasalf)
|
||||
@@ -1197,7 +1179,7 @@ static void Upload32( unsigned *data,
|
||||
GLenum temp_GLtype = GL_UNSIGNED_BYTE;
|
||||
float rMax = 0, gMax = 0, bMax = 0;
|
||||
int texsizex, texsizey;
|
||||
|
||||
int forceBits = 0;
|
||||
|
||||
|
||||
//
|
||||
@@ -1256,7 +1238,7 @@ static void Upload32( unsigned *data,
|
||||
// Auto-determine from resolution division
|
||||
|
||||
if (r_iconmip->integer == 1){
|
||||
int wadth, haght, dev;
|
||||
int wadth, haght, dev = 0;
|
||||
|
||||
wadth = floor(1280 / glConfig.vidWidth) - 1;
|
||||
haght = floor(960 / glConfig.vidHeight) - 1;
|
||||
@@ -1283,9 +1265,20 @@ static void Upload32( unsigned *data,
|
||||
|
||||
|
||||
}
|
||||
if (r_iconBits->integer){
|
||||
forceBits = r_iconBits->integer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// leilei - lightmap color bits, for saving vram/tex cache
|
||||
if (lightMap){
|
||||
if (r_lightmapBits->integer){
|
||||
forceBits = r_lightmapBits->integer;
|
||||
force32upload = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// clamp to minimum size
|
||||
//
|
||||
@@ -1348,7 +1341,6 @@ static void Upload32( unsigned *data,
|
||||
{
|
||||
int yee;
|
||||
int yer;
|
||||
int yes;
|
||||
int yeah;
|
||||
int yo;
|
||||
for ( i = 0; i < c; i++ )
|
||||
@@ -1368,6 +1360,112 @@ static void Upload32( unsigned *data,
|
||||
}
|
||||
}
|
||||
|
||||
if(r_textureDither->integer) // possibly the stupidest texture dithering ever
|
||||
{
|
||||
#ifdef DONTEVENTHINKABOUTTHIS
|
||||
int passes = r_textureDither->integer;
|
||||
int that;
|
||||
/* LEIFX FILTER C PORT PROTOTYPE SCRATCH AREA
|
||||
No vectors, only ints ints ints Obviously can be refactored with SSE */
|
||||
#define FILTCAP (0.075 * 255)
|
||||
#define FILTCAPG (FILTCAP / 2)
|
||||
for (that=0;that<passes;that++){
|
||||
|
||||
for ( i = 0; i < c-1; i++ )
|
||||
{
|
||||
int ren;
|
||||
int r1,g1,b1;
|
||||
int r2,g2,b2;
|
||||
int rd,gd,bd;
|
||||
|
||||
/* Grab Pixels to Sample From */
|
||||
r1 = scan[i*4];
|
||||
g1 = scan[i*4+1];
|
||||
b1 = scan[i*4+2];
|
||||
|
||||
r2 = scan[(i+1)*4];
|
||||
g2 = scan[(i+1)*4 + 1];
|
||||
b2 = scan[(i+1)*4 + 2];
|
||||
|
||||
/* Find differences */
|
||||
|
||||
rd = r2 - r1;
|
||||
gd = g2 - g1;
|
||||
bd = b2 - b1;
|
||||
|
||||
if (rd > FILTCAP ) rd = FILTCAP;
|
||||
if (gd > FILTCAPG) gd = FILTCAPG;
|
||||
if (bd > FILTCAP ) bd = FILTCAP;
|
||||
|
||||
if (rd < -FILTCAP ) rd = -FILTCAP;
|
||||
if (gd < -FILTCAPG) gd = -FILTCAPG;
|
||||
if (bd < -FILTCAP ) bd = -FILTCAP;
|
||||
|
||||
/* Add our Differences */
|
||||
|
||||
r1 += (rd/3);
|
||||
g1 += (gd/3);
|
||||
b1 += (bd/3);
|
||||
|
||||
/* Obligatory clamping part */
|
||||
if (r1 < 0) r1 = 0;
|
||||
if (g1 < 0) g1 = 0;
|
||||
if (b1 < 0) b1 = 0;
|
||||
|
||||
if (r1 > 255) r1 = 255;
|
||||
if (g1 > 255) g1 = 255;
|
||||
if (b1 > 255) b1 = 255;
|
||||
|
||||
if (r2 < 0) r2 = 0;
|
||||
if (g2 < 0) g2 = 0;
|
||||
if (b2 < 0) b2 = 0;
|
||||
|
||||
if (r2 > 255) r2 = 255;
|
||||
if (g2 > 255) g2 = 255;
|
||||
if (b2 > 255) b2 = 255;
|
||||
|
||||
|
||||
|
||||
/* Put processed image back into the buffer */
|
||||
scan[i*4] = r1;
|
||||
scan[i*4 + 1] = g1;
|
||||
scan[i*4 + 2] = b1;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
for ( i = 0; i < c; i++ )
|
||||
{
|
||||
int ren = (crandom() * 4);
|
||||
int rg,gg,bb;
|
||||
rg = scan[i*4];
|
||||
gg = scan[i*4+1];
|
||||
bb = scan[i*4+2];
|
||||
|
||||
//if ((rg / 64) != ceil(rg / 64))
|
||||
rg = scan[i*4] + ren;
|
||||
//if ((gg / 32) != ceil(gg / 32))
|
||||
gg = scan[i*4 + 1] + (ren / 2);
|
||||
//if ((bb / 64) != ceil(bb / 64))
|
||||
bb = scan[i*4 + 2] + ren;
|
||||
|
||||
if (rg < 0) rg = 0;
|
||||
if (gg < 0) gg = 0;
|
||||
if (bb < 0) bb = 0;
|
||||
|
||||
if (rg > 255) rg = 255;
|
||||
if (gg > 255) gg = 255;
|
||||
if (bb > 255) bb = 255;
|
||||
|
||||
scan[i*4] = rg;
|
||||
scan[i*4 + 1] = gg;
|
||||
scan[i*4 + 2] = bb;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1410,6 +1508,39 @@ static void Upload32( unsigned *data,
|
||||
internalFormat = GL_LUMINANCE;
|
||||
else
|
||||
internalFormat = GL_RGB;
|
||||
|
||||
// leilei - lightmap color bits, for saving vram/tex cache
|
||||
if (r_lightmapBits->integer){
|
||||
forceBits = r_lightmapBits->integer;
|
||||
force32upload = 0;
|
||||
|
||||
if ( forceBits == 16)
|
||||
{
|
||||
internalFormat = GL_RGB5;
|
||||
}
|
||||
else if ( forceBits == 15)
|
||||
{
|
||||
internalFormat = GL_RGB5;
|
||||
}
|
||||
else if ( forceBits == 12)
|
||||
{
|
||||
internalFormat = GL_RGB4;
|
||||
}
|
||||
else if ( forceBits == 6)
|
||||
{
|
||||
internalFormat = GL_R3_G3_B2;
|
||||
}
|
||||
else if ( forceBits == 32)
|
||||
{
|
||||
internalFormat = GL_RGB8;
|
||||
}
|
||||
else
|
||||
{
|
||||
internalFormat = GL_RGB;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1438,9 +1569,9 @@ static void Upload32( unsigned *data,
|
||||
{
|
||||
if(r_greyscale->integer)
|
||||
{
|
||||
if(r_texturebits->integer == 16)
|
||||
if(r_texturebits->integer == 16 || forceBits == 16)
|
||||
internalFormat = GL_LUMINANCE8;
|
||||
else if(r_texturebits->integer == 32)
|
||||
else if(r_texturebits->integer == 32 || forceBits == 32)
|
||||
internalFormat = GL_LUMINANCE16;
|
||||
else
|
||||
internalFormat = GL_LUMINANCE;
|
||||
@@ -1455,23 +1586,23 @@ static void Upload32( unsigned *data,
|
||||
{
|
||||
internalFormat = GL_RGB4_S3TC;
|
||||
}
|
||||
else if ( r_texturebits->integer == 16 )
|
||||
else if ( r_texturebits->integer == 16 || forceBits == 16)
|
||||
{
|
||||
internalFormat = GL_RGB5;
|
||||
}
|
||||
else if ( r_texturebits->integer == 15 )
|
||||
else if ( r_texturebits->integer == 15 || forceBits == 15)
|
||||
{
|
||||
internalFormat = GL_RGB5;
|
||||
}
|
||||
else if ( r_texturebits->integer == 12 )
|
||||
else if ( r_texturebits->integer == 12 || forceBits == 12)
|
||||
{
|
||||
internalFormat = GL_RGB4;
|
||||
}
|
||||
else if ( r_texturebits->integer == 6 )
|
||||
else if ( r_texturebits->integer == 6 || forceBits == 6)
|
||||
{
|
||||
internalFormat = GL_R3_G3_B2;
|
||||
}
|
||||
else if ( r_texturebits->integer == 32 )
|
||||
else if ( r_texturebits->integer == 32 || forceBits == 32)
|
||||
{
|
||||
internalFormat = GL_RGB8;
|
||||
}
|
||||
@@ -1488,9 +1619,9 @@ static void Upload32( unsigned *data,
|
||||
{
|
||||
if(r_greyscale->integer)
|
||||
{
|
||||
if(r_texturebits->integer == 16)
|
||||
if(r_texturebits->integer == 16 || forceBits == 16)
|
||||
internalFormat = GL_LUMINANCE8_ALPHA8;
|
||||
else if(r_texturebits->integer == 32)
|
||||
else if(r_texturebits->integer == 32 || forceBits == 32)
|
||||
internalFormat = GL_LUMINANCE16_ALPHA16;
|
||||
else
|
||||
internalFormat = GL_LUMINANCE_ALPHA;
|
||||
@@ -1502,23 +1633,23 @@ static void Upload32( unsigned *data,
|
||||
internalFormat = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; // leilei - this was missing
|
||||
}
|
||||
else
|
||||
if ( r_texturebits->integer == 16 )
|
||||
if ( r_texturebits->integer == 16 || forceBits == 16)
|
||||
{
|
||||
internalFormat = GL_RGBA4;
|
||||
}
|
||||
else if ( r_texturebits->integer == 15 )
|
||||
else if ( r_texturebits->integer == 15 || forceBits == 15)
|
||||
{
|
||||
internalFormat = GL_RGB5_A1;
|
||||
}
|
||||
else if ( r_texturebits->integer == 12 )
|
||||
else if ( r_texturebits->integer == 12 || forceBits == 12)
|
||||
{
|
||||
internalFormat = GL_RGBA4;
|
||||
}
|
||||
else if ( r_texturebits->integer == 6 )
|
||||
else if ( r_texturebits->integer == 6 || forceBits == 6)
|
||||
{
|
||||
internalFormat = GL_RGBA2;
|
||||
}
|
||||
else if ( r_texturebits->integer == 32 )
|
||||
else if ( r_texturebits->integer == 32 || forceBits == 32)
|
||||
{
|
||||
internalFormat = GL_RGBA8;
|
||||
}
|
||||
@@ -1760,7 +1891,6 @@ static void Upload8( unsigned *data,
|
||||
scan = ((byte *)data);
|
||||
samples = 3;
|
||||
// LEILEI - paletted texturing hack
|
||||
int isalphaed=0;
|
||||
// Check for an alpha
|
||||
|
||||
for ( i = 0; i < c; i++ )
|
||||
@@ -1770,9 +1900,6 @@ static void Upload8( unsigned *data,
|
||||
a *= 1.9;
|
||||
a /= 255;
|
||||
a *= 255;
|
||||
if (!a){
|
||||
isalphaed = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (paletteability)
|
||||
@@ -2226,7 +2353,7 @@ image_t *R_FindImageFile( const char *name, imgType_t type, imgFlags_t flags )
|
||||
|
||||
// leilei - iconmip hack
|
||||
|
||||
if ( !Q_strncmp( name, "icons/", 5 ) || (!Q_strncmp( name, "gfx/2d", 6 )) && (Q_strncmp( name, "gfx/2d/bigchars", 14 ))){
|
||||
if ( !Q_strncmp( name, "icons/", 5 ) || ((!Q_strncmp( name, "gfx/2d", 6 )) && (Q_strncmp( name, "gfx/2d/bigchars", 14 )))){
|
||||
isicon = 1;
|
||||
}
|
||||
else
|
||||
@@ -2242,7 +2369,7 @@ image_t *R_FindImageFile( const char *name, imgType_t type, imgFlags_t flags )
|
||||
|
||||
|
||||
// leilei - load safe or lewd textures if desired.
|
||||
if (!Q_strncmp( name, "models/players", 14) ){
|
||||
if (!Q_strncmp( name, "models/player", 13) ){
|
||||
|
||||
|
||||
|
||||
|
@@ -57,7 +57,7 @@ cvar_t *r_ignore;
|
||||
cvar_t *r_detailTextures;
|
||||
cvar_t *r_detailTextureScale;
|
||||
cvar_t *r_detailTextureLayers;
|
||||
cvar_t *r_shadeSpecular;
|
||||
|
||||
|
||||
cvar_t *r_znear;
|
||||
cvar_t *r_zproj;
|
||||
@@ -129,6 +129,8 @@ cvar_t *r_roundImagesDown;
|
||||
cvar_t *r_colorMipLevels;
|
||||
cvar_t *r_picmip;
|
||||
cvar_t *r_iconmip;
|
||||
cvar_t *r_iconBits;
|
||||
cvar_t *r_lightmapBits;
|
||||
cvar_t *r_showtris;
|
||||
cvar_t *r_showsky;
|
||||
cvar_t *r_shownormals;
|
||||
@@ -220,6 +222,7 @@ cvar_t *r_slowness; // Leilei - the cvar that slows everything down. use with c
|
||||
cvar_t *r_slowness_cpu; // Leilei
|
||||
cvar_t *r_slowness_gpu; // Leilei
|
||||
|
||||
cvar_t *r_textureDither; // leilei - Dithered texture
|
||||
|
||||
cvar_t *r_texdump; // Leilei - debug - texture dump as they load, players should never need to use this!
|
||||
|
||||
@@ -358,7 +361,7 @@ vidmode_t r_vidModes[] =
|
||||
{ "Mode 0: 320x240", 320, 240, 1 },
|
||||
{ "Mode 1: 400x300", 400, 300, 1 },
|
||||
{ "Mode 2: 512x384", 512, 384, 1 },
|
||||
{ "Mode 3: 640x480", 640, 480, 1 },
|
||||
{ "Mode 3: 640x480 (480p)", 640, 480, 1 },
|
||||
{ "Mode 4: 800x600", 800, 600, 1 },
|
||||
{ "Mode 5: 960x720", 960, 720, 1 },
|
||||
{ "Mode 6: 1024x768", 1024, 768, 1 },
|
||||
@@ -366,8 +369,8 @@ vidmode_t r_vidModes[] =
|
||||
{ "Mode 8: 1280x1024", 1280, 1024, 1 },
|
||||
{ "Mode 9: 1600x1200", 1600, 1200, 1 },
|
||||
{ "Mode 10: 2048x1536", 2048, 1536, 1 },
|
||||
{ "Mode 11: 856x480",856, 480, 1 },
|
||||
{ "Mode 12: 1280x720", 1280, 720, 1 },
|
||||
{ "Mode 11: 856x480", 856, 480, 1 }, // Q3 MODES END HERE AND EXTENDED MODES BEGIN
|
||||
{ "Mode 12: 1280x720 (720p)", 1280, 720, 1 },
|
||||
{ "Mode 13: 1280x768", 1280, 768, 1 },
|
||||
{ "Mode 14: 1280x800", 1280, 800, 1 },
|
||||
{ "Mode 15: 1280x960", 1280, 960, 1 },
|
||||
@@ -378,8 +381,11 @@ vidmode_t r_vidModes[] =
|
||||
{ "Mode 20: 1400x900", 1400, 900, 1 },
|
||||
{ "Mode 21: 1600x900", 1600, 900, 1 },
|
||||
{ "Mode 22: 1680x1050", 1680, 1050, 1 },
|
||||
{ "Mode 23: 1920x1080", 1920, 1080, 1 },
|
||||
{ "Mode 24: 1920x1440", 1920, 1440, 1 }
|
||||
{ "Mode 23: 1920x1080 (1080p)", 1920, 1080, 1 },
|
||||
{ "Mode 24: 1920x1200", 1920, 1200, 1 },
|
||||
{ "Mode 25: 1920x1440", 1920, 1440, 1 },
|
||||
{ "Mode 26: 2560x1600", 2560, 1600, 1 },
|
||||
{ "Mode 27: 3840x2160 (4K)", 3840, 2160, 1 }
|
||||
};
|
||||
static int s_numVidModes = ARRAY_LEN( r_vidModes );
|
||||
|
||||
@@ -586,7 +592,7 @@ const void *RB_TakeScreenshotCmd( const void *data ) {
|
||||
cmd = (const screenshotCommand_t *)data;
|
||||
|
||||
// leilei - hack for tvmode
|
||||
if (r_tvMode->integer){
|
||||
if (r_tvMode->integer > -1){
|
||||
|
||||
if (cmd->jpeg)
|
||||
RB_TakeScreenshotJPEG( cmd->x, cmd->y, tvWidth, tvHeight, cmd->fileName);
|
||||
@@ -1144,7 +1150,7 @@ void R_Register( void )
|
||||
ri.Cvar_CheckRange( r_ext_multisample, 0, 4, qtrue );
|
||||
r_overBrightBits = ri.Cvar_Get ("r_overBrightBits", "1", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_ignorehwgamma = ri.Cvar_Get( "r_ignorehwgamma", "0", CVAR_ARCHIVE | CVAR_LATCH);
|
||||
r_mode = ri.Cvar_Get( "r_mode", "3", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_mode = ri.Cvar_Get( "r_mode", "-2", CVAR_ARCHIVE | CVAR_LATCH ); // leilei - changed default from 3, for modern convenience. It will still fallback to 3 if this fails (voodoo etc)
|
||||
r_fullscreen = ri.Cvar_Get( "r_fullscreen", "1", CVAR_ARCHIVE );
|
||||
r_noborder = ri.Cvar_Get("r_noborder", "0", CVAR_ARCHIVE | CVAR_LATCH);
|
||||
r_customwidth = ri.Cvar_Get( "r_customwidth", "1600", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
@@ -1300,12 +1306,15 @@ void R_Register( void )
|
||||
r_slowness_cpu = ri.Cvar_Get( "r_slowness_cpu", "300" , CVAR_ARCHIVE); // it's 0 because you want it to be the fastest possible by default.
|
||||
r_slowness_gpu = ri.Cvar_Get( "r_slowness_gpu", "96" , CVAR_ARCHIVE); // it's 0 because you want it to be the fastest possible by default.
|
||||
|
||||
r_iconmip = ri.Cvar_Get ("r_iconmip", "1", CVAR_ARCHIVE | CVAR_LATCH ); // leilei - icon mip
|
||||
r_iconmip = ri.Cvar_Get ("r_iconmip", "0", CVAR_ARCHIVE | CVAR_LATCH ); // leilei - icon mip
|
||||
r_iconBits = ri.Cvar_Get ("r_iconBits", "0", CVAR_ARCHIVE | CVAR_LATCH ); // leilei - icon bits
|
||||
|
||||
r_lightmapBits = ri.Cvar_Get ("r_lightmapBits", "0", CVAR_ARCHIVE | CVAR_LATCH ); // leilei - lightmap color bits
|
||||
|
||||
r_textureDither = ri.Cvar_Get ("r_textureDither", "0", CVAR_ARCHIVE | CVAR_LATCH ); // leilei - dithered textures
|
||||
|
||||
r_texdump = ri.Cvar_Get( "r_texdump", "0", CVAR_CHEAT ); // leilei - debug - texture dumping
|
||||
|
||||
r_shadeSpecular = ri.Cvar_Get( "r_shadeSpecular", "1", CVAR_ARCHIVE | CVAR_LATCH ); // leilei - our models look best with these
|
||||
|
||||
// make sure all the commands added here are also
|
||||
// removed in R_Shutdown
|
||||
ri.Cmd_AddCommand( "imagelist", R_ImageList_f );
|
||||
|
@@ -254,143 +254,6 @@ static void R_SetupEntityLightingGrid( trRefEntity_t *ent ) {
|
||||
|
||||
|
||||
|
||||
// leilei - alternative version to don't do the dynamic lighting contrast which could
|
||||
// contribute toward epilepsy.
|
||||
|
||||
static void R_SetupEntityLightingGrid_NoContrast( trRefEntity_t *ent ) {
|
||||
vec3_t lightOrigin;
|
||||
int pos[3];
|
||||
int i, j;
|
||||
byte *gridData;
|
||||
float frac[3];
|
||||
int gridStep[3];
|
||||
vec3_t direction;
|
||||
float totalFactor;
|
||||
|
||||
|
||||
|
||||
|
||||
if ( ent->e.renderfx & RF_LIGHTING_ORIGIN ) {
|
||||
// seperate lightOrigins are needed so an object that is
|
||||
// sinking into the ground can still be lit, and so
|
||||
// multi-part models can be lit identically
|
||||
VectorCopy( ent->e.lightingOrigin, lightOrigin );
|
||||
} else {
|
||||
VectorCopy( ent->e.origin, lightOrigin );
|
||||
}
|
||||
|
||||
VectorSubtract( lightOrigin, tr.world->lightGridOrigin, lightOrigin );
|
||||
for ( i = 0 ; i < 3 ; i++ ) {
|
||||
float v;
|
||||
|
||||
|
||||
v = lightOrigin[i]*tr.world->lightGridInverseSize[i];
|
||||
pos[i] = floor( v );
|
||||
frac[i] = v - pos[i];
|
||||
if ( pos[i] < 0 ) {
|
||||
pos[i] = 0;
|
||||
} else if ( pos[i] >= tr.world->lightGridBounds[i] - 1 ) {
|
||||
pos[i] = tr.world->lightGridBounds[i] - 1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
VectorClear( ent->ambientLight );
|
||||
VectorClear( ent->directedLight );
|
||||
VectorClear( ent->dynamicLight );
|
||||
VectorClear( direction );
|
||||
|
||||
assert( tr.world->lightGridData ); // NULL with -nolight maps
|
||||
|
||||
// trilerp the light value
|
||||
gridStep[0] = 8;
|
||||
gridStep[1] = 8 * tr.world->lightGridBounds[0];
|
||||
gridStep[2] = 8 * tr.world->lightGridBounds[0] * tr.world->lightGridBounds[1];
|
||||
gridData = tr.world->lightGridData + pos[0] * gridStep[0]
|
||||
+ pos[1] * gridStep[1] + pos[2] * gridStep[2];
|
||||
|
||||
totalFactor = 0;
|
||||
for ( i = 0 ; i < 8 ; i++ ) {
|
||||
float factor;
|
||||
byte *data;
|
||||
int lat, lng;
|
||||
vec3_t normal;
|
||||
#if idppc
|
||||
float d0, d1, d2, d3, d4, d5;
|
||||
#endif
|
||||
factor = 1.0;
|
||||
data = gridData;
|
||||
for ( j = 0 ; j < 3 ; j++ ) {
|
||||
if ( i & (1<<j) ) {
|
||||
factor *= frac[j];
|
||||
data += gridStep[j];
|
||||
} else {
|
||||
factor *= (1.0f - frac[j]);
|
||||
}
|
||||
}
|
||||
|
||||
if ( !(data[0]+data[1]+data[2]) ) {
|
||||
continue; // ignore samples in walls
|
||||
}
|
||||
totalFactor += factor;
|
||||
#if idppc
|
||||
d0 = data[0]; d1 = data[1]; d2 = data[2];
|
||||
d3 = data[3]; d4 = data[4]; d5 = data[5];
|
||||
|
||||
ent->ambientLight[0] += factor * d0;
|
||||
ent->ambientLight[1] += factor * d1;
|
||||
ent->ambientLight[2] += factor * d2;
|
||||
|
||||
ent->directedLight[0] += factor * d3;
|
||||
ent->directedLight[1] += factor * d4;
|
||||
ent->directedLight[2] += factor * d5;
|
||||
#else
|
||||
ent->ambientLight[0] += factor * data[0];
|
||||
ent->ambientLight[1] += factor * data[1];
|
||||
ent->ambientLight[2] += factor * data[2];
|
||||
|
||||
ent->directedLight[0] += factor * data[3];
|
||||
ent->directedLight[1] += factor * data[4];
|
||||
ent->directedLight[2] += factor * data[5];
|
||||
#endif
|
||||
lat = data[7];
|
||||
lng = data[6];
|
||||
lat *= (FUNCTABLE_SIZE/256);
|
||||
lng *= (FUNCTABLE_SIZE/256);
|
||||
|
||||
// decode X as cos( lat ) * sin( long )
|
||||
// decode Y as sin( lat ) * sin( long )
|
||||
// decode Z as cos( long )
|
||||
|
||||
normal[0] = tr.sinTable[(lat+(FUNCTABLE_SIZE/4))&FUNCTABLE_MASK] * tr.sinTable[lng];
|
||||
normal[1] = tr.sinTable[lat] * tr.sinTable[lng];
|
||||
normal[2] = tr.sinTable[(lng+(FUNCTABLE_SIZE/4))&FUNCTABLE_MASK];
|
||||
|
||||
VectorMA( direction, factor, normal, direction );
|
||||
}
|
||||
|
||||
if ( totalFactor > 0 && totalFactor < 0.99 ) {
|
||||
totalFactor = 1.0f / totalFactor;
|
||||
VectorScale( ent->ambientLight, totalFactor, ent->ambientLight );
|
||||
VectorScale( ent->directedLight, totalFactor, ent->directedLight );
|
||||
}
|
||||
|
||||
VectorScale( ent->ambientLight, r_ambientScale->value, ent->ambientLight );
|
||||
VectorScale( ent->directedLight, r_directedScale->value, ent->directedLight );
|
||||
|
||||
{
|
||||
float ervg = ent->directedLight[0] + ent->directedLight[1] + ent->directedLight[2];
|
||||
// VectorScale( ent->ambientLight, ent->directedLight, ent->ambientLight );
|
||||
// VectorScale( ent->directedLight, 0.7, ent->directedLight );
|
||||
|
||||
}
|
||||
|
||||
VectorNormalize2( direction, ent->lightDir );
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@@ -1334,7 +1334,6 @@ extern cvar_t *r_lensReflectionBrightness;
|
||||
|
||||
extern cvar_t *r_ext_paletted_texture; // leilei - Paletted Texture
|
||||
extern cvar_t *r_specMode;
|
||||
extern cvar_t *r_shadeSpecular; // leilei - allows the special specular diffuse shading
|
||||
//extern cvar_t *r_waveMode;
|
||||
|
||||
extern cvar_t *r_flaresDlight;
|
||||
@@ -1354,7 +1353,8 @@ extern cvar_t *r_ntsc; // Leilei - ntsc
|
||||
|
||||
extern cvar_t *r_tvMode; // Leilei - tv faking mode
|
||||
extern cvar_t *r_tvModeForceAspect; // Leilei - retain aspect of the tv's mode
|
||||
extern cvar_t *r_tvConsoleMode; // Leilei - tv faking mode
|
||||
extern cvar_t *r_tvFilter; // Leilei - filter to use
|
||||
|
||||
|
||||
extern cvar_t *r_retroAA; // Leilei - old console anti aliasing
|
||||
|
||||
@@ -1369,12 +1369,17 @@ extern cvar_t *r_leidebug; // Leilei - debug only!
|
||||
extern cvar_t *r_leidebugeye; // Leilei - debug only!
|
||||
|
||||
extern cvar_t *r_iconmip; // leilei - icon mip - picmip for 2d icons
|
||||
extern cvar_t *r_iconBits; // leilei - icon color depth for 2d icons
|
||||
|
||||
extern cvar_t *r_lightmapBits; // leilei - lightmap color depth
|
||||
|
||||
extern cvar_t *r_texdump; // leilei - texture dumping
|
||||
|
||||
extern cvar_t *r_detailTextureScale; // leilei - scale tweak the detail textures, 0 doesn't tweak at all.
|
||||
extern cvar_t *r_detailTextureLayers; // leilei - add in more smaller detail texture layers, expensive!
|
||||
|
||||
extern cvar_t *r_textureDither; // leilei - apply dithering for lower texture bits
|
||||
|
||||
//====================================================================
|
||||
|
||||
void R_SwapBuffers( int );
|
||||
|
@@ -371,7 +371,7 @@ qhandle_t RE_RegisterModelReal( const char *name ) {
|
||||
|
||||
qhandle_t RE_RegisterModel( const char *name ) {
|
||||
|
||||
if (!Q_strncmp( name, "models/players", 14)){
|
||||
if (!Q_strncmp( name, "models/player", 13)){
|
||||
if (r_suggestiveThemes->integer == 0){ // safe models that will ship, much needed option of modesty
|
||||
qhandle_t eh;
|
||||
char narm[ MAX_QPATH ];
|
||||
|
@@ -2595,11 +2595,8 @@ static qboolean ParseStage( shaderStage_t *stage, char **text )
|
||||
{
|
||||
stage->rgbGen = CGEN_ONE_MINUS_VERTEX;
|
||||
}
|
||||
else if ( !Q_stricmp( token, "lightingSpecularDiffuse" ) ) // leilei - use special specular calculation if overbrights and r_shadeSpecular is enabled
|
||||
else if ( !Q_stricmp( token, "lightingSpecularDiffuse" ) ) // leilei - deprecated
|
||||
{
|
||||
if ( r_shadeSpecular->integer && tr.overbrightBits )
|
||||
stage->rgbGen = CGEN_LIGHTING_DIFFUSE_SPECULAR;
|
||||
else
|
||||
stage->rgbGen = CGEN_LIGHTING_DIFFUSE;
|
||||
}
|
||||
else
|
||||
@@ -4607,7 +4604,7 @@ shader_t *R_FindShader( const char *name, int lightmapIndex, qboolean mipRawImag
|
||||
|
||||
// load real shader first?
|
||||
sh = R_FindShaderReal(name, lightmapIndex, mipRawImage);
|
||||
if (!Q_strncmp( name, "models/players", 14) ){ // restrict to players; speedup
|
||||
if (!Q_strncmp( name, "models/player", 13) ){ // restrict to players; speedup
|
||||
if (r_suggestiveThemes->integer < 1) // find safe textures/shaders if available
|
||||
{
|
||||
sugthem = 1;
|
||||
|
@@ -74,7 +74,7 @@ static const SDL_VideoInfo *videoInfo = NULL;
|
||||
|
||||
cvar_t *r_allowSoftwareGL; // Don't abort out if a hardware visual can't be obtained
|
||||
cvar_t *r_tvMode; // leilei - tv mode - force 480i rendering, which is then stretched and interlaced
|
||||
cvar_t *r_tvConsoleMode; // leilei - tv mode
|
||||
cvar_t *r_tvFilter; // leilei - tv filter
|
||||
cvar_t *r_tvModeAspect; // leilei - tv mode - to do widescreen and low res tv etc
|
||||
cvar_t *r_tvModeForceAspect; // leilei - tv mode - to force the screen into its native aspect
|
||||
cvar_t *r_motionblur; // leilei - moved here to set up accumulation bits
|
||||
@@ -212,7 +212,7 @@ static int GLimp_SetMode(int mode, qboolean fullscreen, qboolean noborder)
|
||||
int sdlcolorbits;
|
||||
int colorbits, depthbits, stencilbits;
|
||||
int tcolorbits, tdepthbits, tstencilbits;
|
||||
int accumbits, taccumbits; // leilei - motionblur
|
||||
int accumbits; // leilei - motionblur
|
||||
int samples;
|
||||
int i = 0;
|
||||
SDL_Surface *vidscreen = NULL;
|
||||
@@ -341,7 +341,7 @@ static int GLimp_SetMode(int mode, qboolean fullscreen, qboolean noborder)
|
||||
tcolorbits = colorbits;
|
||||
tdepthbits = depthbits;
|
||||
tstencilbits = stencilbits;
|
||||
taccumbits = accumbits;
|
||||
|
||||
|
||||
if ((i % 4) == 3)
|
||||
{ // reduce colorbits
|
||||
@@ -487,45 +487,29 @@ static int GLimp_SetMode(int mode, qboolean fullscreen, qboolean noborder)
|
||||
vresHeight = 480;
|
||||
//tvAspectW = 1.0; // no change
|
||||
|
||||
if( r_tvMode->integer ){
|
||||
if( r_tvMode->integer > -1){
|
||||
|
||||
|
||||
|
||||
// HIJACKED >:)
|
||||
glConfig.vidWidth = 640;
|
||||
glConfig.vidHeight = 480;
|
||||
|
||||
|
||||
if( r_tvMode->integer == 96 ){
|
||||
glConfig.vidWidth = 320;
|
||||
glConfig.vidHeight = 200;
|
||||
}
|
||||
if( r_tvMode->integer == 97 ){
|
||||
glConfig.vidWidth = 320;
|
||||
glConfig.vidHeight = 240;
|
||||
if ( !R_GetModeInfo( &glConfig.vidWidth, &glConfig.vidHeight, &glConfig.windowAspect, r_tvMode->integer ) )
|
||||
{
|
||||
glConfig.vidWidth = 640; // if we can't do a mode then do this mode
|
||||
glConfig.vidHeight = 480;
|
||||
}
|
||||
|
||||
// leilei - make it use an aspect-corrected lower resolution that's always 640 wide for the width, but variable height
|
||||
|
||||
// then change the gl port..
|
||||
|
||||
if (glConfig.vidWidth > tvWidth) glConfig.vidWidth = tvWidth; // clamp
|
||||
if (glConfig.vidHeight > tvHeight) glConfig.vidHeight = tvHeight; // clamp
|
||||
|
||||
|
||||
// leilei - make it use an aspect-corrected lower resolution that's always 640 wide for the width, but variable height
|
||||
// then change the gl port..
|
||||
|
||||
vresWidth = tvWidth;
|
||||
vresHeight = tvHeight;
|
||||
|
||||
if( r_tvModeForceAspect->integer ){
|
||||
// glConfig.vidHeight = tvHeight * aspe;
|
||||
float thv = tvHeight / glConfig.vidHeight; // 720 / 480 = 1.5
|
||||
float thw = tvWidth / glConfig.vidWidth; // 1280 / 640 = 2
|
||||
float chv = glConfig.vidHeight / tvHeight; // 640 / 1280 = 0.5
|
||||
float chw = glConfig.vidHeight / tvWidth; // 480 / 720 = 0.66666666
|
||||
float chvw = tvHeight * chw; // 720 * 0.6666 = 480
|
||||
float chwv = tvWidth * chw; // 1280 * 0.6666 = 853
|
||||
//float ttw = glConfig.vidWidth / (tvWidth * chw); // 640 / 853 = 0.75 = ASPECT VALUE
|
||||
float ttw = (float)glConfig.vidWidth / ((float)tvWidth * (float)((float)glConfig.vidHeight/(float)tvHeight)); // 640 / 853 = 0.75 = ASPECT VALUE
|
||||
|
||||
//float tth = tvWidth * chv; // lower...
|
||||
// float ttw = glConfig.vidWidth / tth;
|
||||
//jj
|
||||
tvAspectW = ttw; // let's try this first to see if we can get it to our renderer
|
||||
|
||||
//tvAspectW = 0.75f; // let's try this first to see if we can get it to our renderer
|
||||
@@ -535,30 +519,6 @@ static int GLimp_SetMode(int mode, qboolean fullscreen, qboolean noborder)
|
||||
}
|
||||
// leilei - tv mode hack end
|
||||
|
||||
// leilei - console hack
|
||||
if( r_tvConsoleMode->integer ){
|
||||
|
||||
|
||||
if (r_tvConsoleMode->integer == 1) // standard 640x448 console of 6th gen
|
||||
{
|
||||
glConfig.vidWidth = 640;
|
||||
glConfig.vidHeight = 448;
|
||||
|
||||
vresWidth = 640;
|
||||
vresHeight = 480;
|
||||
}
|
||||
|
||||
if (r_tvConsoleMode->integer == 10) // that other portable
|
||||
{
|
||||
glConfig.vidWidth = 480;
|
||||
glConfig.vidHeight = 272;
|
||||
|
||||
vresWidth = 480;
|
||||
vresHeight = 272;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
screen = vidscreen;
|
||||
|
||||
@@ -824,11 +784,11 @@ void GLimp_Init( void )
|
||||
r_allowResize = ri.Cvar_Get( "r_allowResize", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
r_centerWindow = ri.Cvar_Get( "r_centerWindow", "0", CVAR_ARCHIVE | CVAR_LATCH );
|
||||
// leilei - tv mode hack
|
||||
r_tvMode = ri.Cvar_Get( "r_tvMode", "0", CVAR_LATCH | CVAR_ARCHIVE );
|
||||
r_tvMode = ri.Cvar_Get( "r_virtualMode", "-1", CVAR_LATCH | CVAR_ARCHIVE );
|
||||
r_tvModeAspect = ri.Cvar_Get( "r_tvModeAspect", "0", CVAR_LATCH | CVAR_ARCHIVE ); // yes
|
||||
r_tvModeForceAspect = ri.Cvar_Get( "r_tvModeForceAspect", "0", CVAR_LATCH | CVAR_ARCHIVE ); // yes
|
||||
|
||||
r_tvConsoleMode = ri.Cvar_Get( "r_tvConsoleMode", "0", CVAR_LATCH | CVAR_ARCHIVE );
|
||||
r_tvFilter = ri.Cvar_Get( "r_tvFilter", "1", CVAR_LATCH | CVAR_ARCHIVE );
|
||||
|
||||
// leilei - move motionblur cvar here to get it to not upset the other renderers when setting up an accumulation buffer
|
||||
r_motionblur = ri.Cvar_Get( "r_motionblur", "0", CVAR_LATCH | CVAR_ARCHIVE );
|
||||
|
Reference in New Issue
Block a user