04 Aug 2009
This commit is contained in:
parent
d22bf723bb
commit
be2ac55788
|
@ -1,16 +0,0 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: client - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
client.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -1,16 +0,0 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: engine - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
engine.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -1,64 +0,0 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: launch - Win32 Release--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPC7.tmp" with contents
|
||||
[
|
||||
/nologo /MD /W3 /GX /O2 /I "./" /I "imagelib" /I "../public" /I "../common" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fo"..\temp\launch\!release/" /Fd"..\temp\launch\!release/" /FD /c
|
||||
"D:\Xash3D\src_main\launch\memlib.c"
|
||||
]
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPC7.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPC8.tmp" with contents
|
||||
[
|
||||
zlib.lib png.lib user32.lib gdi32.lib advapi32.lib winmm.lib /nologo /dll /pdb:none /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\launch\!release/launch.dll" /implib:"..\temp\launch\!release/launch.lib" /libpath:"./imagelib" /opt:nowin98
|
||||
"\Xash3D\src_main\temp\launch\!release\cmd.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\console.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\cpuinfo.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\crclib.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\cvar.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\export.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\filesystem.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_bmp.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_dds.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_jpg.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_main.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_pcx.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_png.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_tga.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_utils.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_vtf.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\img_wad.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\memlib.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\network.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\parselib.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\patch.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\stdlib.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\system.obj"
|
||||
"\Xash3D\src_main\temp\launch\!release\utils.obj"
|
||||
]
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPC8.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPC9.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\launch\!release\launch.dll "D:\Xash3D\bin\launch.dll"
|
||||
]
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPC9.bat"
|
||||
Compiling...
|
||||
memlib.c
|
||||
Linking...
|
||||
Creating library ..\temp\launch\!release/launch.lib and object ..\temp\launch\!release/launch.exp
|
||||
<h3>Output Window</h3>
|
||||
Performing Custom Build Step on \Xash3D\src_main\temp\launch\!release\launch.dll
|
||||
‘ª®¯¨à®¢ ® ä ©«®¢: 1.
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
launch.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -33,6 +33,10 @@ static float r_triangletable[FTABLE_SIZE];
|
|||
static float r_squaretable[FTABLE_SIZE];
|
||||
static float r_sawtoothtable[FTABLE_SIZE];
|
||||
static float r_inversesawtoothtable[FTABLE_SIZE];
|
||||
static float r_warpsintable[256] =
|
||||
{
|
||||
#include "warpsin.h"
|
||||
};
|
||||
|
||||
#define NOISE_SIZE 256
|
||||
#define NOISE_VAL( a ) r_noiseperm[( a ) & ( NOISE_SIZE - 1 )]
|
||||
|
@ -116,18 +120,17 @@ void R_BackendInit( void )
|
|||
|
||||
r_arraysLocked = false;
|
||||
r_triangleOutlines = false;
|
||||
tr.iRenderMode = kRenderNormal;
|
||||
|
||||
R_ClearArrays();
|
||||
R_InitVertexBuffers();
|
||||
|
||||
R_BackendResetPassMask();
|
||||
|
||||
pglEnableClientState( GL_VERTEX_ARRAY );
|
||||
|
||||
if( !r_ignorehwgamma->integer )
|
||||
r_identityLighting = (int)( 255.0f / pow( 2, max( 0, floor( r_overbrightbits->value ) ) ) );
|
||||
else
|
||||
r_identityLighting = 255;
|
||||
r_identityLighting = (int)( 255.0f / pow( 2, max( 0, floor( r_overbrightbits->value ))));
|
||||
else r_identityLighting = 255;
|
||||
|
||||
// build lookup tables
|
||||
for( i = 0; i < FTABLE_SIZE; i++ )
|
||||
|
@ -136,41 +139,34 @@ void R_BackendInit( void )
|
|||
|
||||
r_sintable[i] = sin( t * M_PI2 );
|
||||
|
||||
if( t < 0.25 )
|
||||
r_triangletable[i] = t * 4.0;
|
||||
else if( t < 0.75 )
|
||||
r_triangletable[i] = 2 - 4.0 * t;
|
||||
else
|
||||
r_triangletable[i] = ( t - 0.75 ) * 4.0 - 1.0;
|
||||
if( t < 0.25f ) r_triangletable[i] = t * 4.0f;
|
||||
else if( t < 0.75f ) r_triangletable[i] = 2 - 4.0f * t;
|
||||
else r_triangletable[i] = ( t - 0.75f ) * 4.0f - 1.0f;
|
||||
|
||||
if( t < 0.5 )
|
||||
r_squaretable[i] = 1.0f;
|
||||
else
|
||||
r_squaretable[i] = -1.0f;
|
||||
if( t < 0.5f ) r_squaretable[i] = 1.0f;
|
||||
else r_squaretable[i] = -1.0f;
|
||||
|
||||
r_sawtoothtable[i] = t;
|
||||
r_inversesawtoothtable[i] = 1.0 - t;
|
||||
r_inversesawtoothtable[i] = 1.0f - t;
|
||||
}
|
||||
|
||||
for( i = 0; i < 256; i++ )
|
||||
r_sintableByte[i] = sin( (float)i / 255.0 * M_PI2 );
|
||||
r_sintableByte[i] = sin((float)i / 255.0f * M_PI2 );
|
||||
|
||||
// init the noise table
|
||||
srand( 1001 );
|
||||
|
||||
for( i = 0; i < NOISE_SIZE; i++ )
|
||||
{
|
||||
r_noisetable[i] = (float)( ( ( rand() / (float)RAND_MAX ) * 2.0 - 1.0 ) );
|
||||
r_noiseperm[i] = (unsigned char)( rand() / (float)RAND_MAX * 255 );
|
||||
r_noisetable[i] = Com_RandomFloat( -1.0f, 1.0f );
|
||||
r_noiseperm[i] = Com_RandomLong( 0, 255 );
|
||||
}
|
||||
|
||||
// init dynamic lights pass
|
||||
memset( &r_dlightsPass, 0, sizeof( ref_stage_t ) );
|
||||
Mem_Set( &r_dlightsPass, 0, sizeof( ref_stage_t ) );
|
||||
r_dlightsPass.flags = SHADERSTAGE_DLIGHT;
|
||||
r_dlightsPass.glState = GLSTATE_DEPTHFUNC_EQ|GLSTATE_SRCBLEND_DST_COLOR|GLSTATE_DSTBLEND_ONE;
|
||||
|
||||
// init fog pass
|
||||
memset( &r_fogPass, 0, sizeof( ref_stage_t ) );
|
||||
Mem_Set( &r_fogPass, 0, sizeof( ref_stage_t ) );
|
||||
r_fogPass.tcgen = TCGEN_FOG;
|
||||
r_fogPass.rgbGen.type = RGBGEN_FOG;
|
||||
r_fogPass.alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
|
@ -192,7 +188,7 @@ void R_BackendInit( void )
|
|||
}
|
||||
|
||||
// init optional GLSL program passes
|
||||
memset( r_GLSLpasses, 0, sizeof( r_GLSLpasses ) );
|
||||
Mem_Set( r_GLSLpasses, 0, sizeof( r_GLSLpasses ) );
|
||||
r_GLSLpasses[0].flags = SHADERSTAGE_DLIGHT|SHADERSTAGE_BLEND_ADD;
|
||||
r_GLSLpasses[0].glState = GLSTATE_DEPTHFUNC_EQ|GLSTATE_SRCBLEND_ONE|GLSTATE_DSTBLEND_ONE;
|
||||
|
||||
|
@ -250,9 +246,9 @@ void R_LatLongToNorm( const byte latlong[2], vec3_t out )
|
|||
{
|
||||
float sin_a, sin_b, cos_a, cos_b;
|
||||
|
||||
cos_a = r_sintableByte[( latlong[0] + 64 ) & 255];
|
||||
cos_a = r_sintableByte[(latlong[0] + 64) & 255];
|
||||
sin_a = r_sintableByte[latlong[0]];
|
||||
cos_b = r_sintableByte[( latlong[1] + 64 ) & 255];
|
||||
cos_b = r_sintableByte[(latlong[1] + 64) & 255];
|
||||
sin_b = r_sintableByte[latlong[1]];
|
||||
|
||||
VectorSet( out, cos_b * sin_a, sin_b * sin_a, cos_a );
|
||||
|
@ -263,7 +259,7 @@ void R_LatLongToNorm( const byte latlong[2], vec3_t out )
|
|||
R_TableForFunc
|
||||
==============
|
||||
*/
|
||||
static float *R_TableForFunc( unsigned int func )
|
||||
static float *R_TableForFunc( uint func )
|
||||
{
|
||||
switch( func )
|
||||
{
|
||||
|
@ -277,15 +273,24 @@ static float *R_TableForFunc( unsigned int func )
|
|||
return r_sawtoothtable;
|
||||
case WAVEFORM_INVERSESAWTOOTH:
|
||||
return r_inversesawtoothtable;
|
||||
|
||||
case WAVEFORM_NOISE:
|
||||
return r_sintable; // default to sintable
|
||||
}
|
||||
|
||||
// assume error
|
||||
Host_Error( "R_TableForFunc: unknown function\n" );
|
||||
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static float R_TableEvaluate( waveFunc_t func, float index )
|
||||
{
|
||||
float *table = R_TableForFunc( func.type );
|
||||
|
||||
if( table == NULL )
|
||||
{
|
||||
if( func.type == WAVEFORM_TABLE )
|
||||
return R_LookupTable( func.tableIndex, index );
|
||||
return 1.0f; // assume error
|
||||
}
|
||||
return FTABLE_EVALUATE( table, index );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -326,7 +331,6 @@ float R_BackendGetNoiseValue( float x, float y, float z, float t )
|
|||
bvalue = NOISE_LERP( NOISE_LERP( back[0], back[1], fx ), NOISE_LERP( back[2], back[3], fx ), fy );
|
||||
value[i] = NOISE_LERP( fvalue, bvalue, fz );
|
||||
}
|
||||
|
||||
finalvalue = NOISE_LERP( value[0], value[1], ft );
|
||||
|
||||
return finalvalue;
|
||||
|
@ -339,7 +343,7 @@ R_BackendResetCounters
|
|||
*/
|
||||
void R_BackendResetCounters( void )
|
||||
{
|
||||
memset( &r_backacc, 0, sizeof( r_backacc ) );
|
||||
Mem_Set( &r_backacc, 0, sizeof( r_backacc ));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -568,7 +572,6 @@ void R_DeformVertices( void )
|
|||
uint i, j, k;
|
||||
double args[4], temp;
|
||||
float deflect, *quad[4];
|
||||
const float *table;
|
||||
const deform_t *deformv;
|
||||
vec3_t tv, rot_centre;
|
||||
|
||||
|
@ -579,15 +582,12 @@ void R_DeformVertices( void )
|
|||
{
|
||||
case DEFORM_NONE:
|
||||
break;
|
||||
|
||||
case DEFORM_WAVE:
|
||||
table = R_TableForFunc( deformv->func.type );
|
||||
|
||||
// Deflect vertex along its normal by wave amount
|
||||
if( deformv->func.args[3] == 0 )
|
||||
{
|
||||
temp = deformv->func.args[2];
|
||||
deflect = FTABLE_EVALUATE( table, temp ) * deformv->func.args[1] + deformv->func.args[0];
|
||||
deflect = R_TableEvaluate( deformv->func, temp ) * deformv->func.args[1] + deformv->func.args[0];
|
||||
|
||||
for( j = 0; j < r_backacc.numVerts; j++ )
|
||||
VectorMA( inVertsArray[j], deflect, inNormalsArray[j], inVertsArray[j] );
|
||||
|
@ -602,12 +602,11 @@ void R_DeformVertices( void )
|
|||
for( j = 0; j < r_backacc.numVerts; j++ )
|
||||
{
|
||||
temp = args[2] + args[3] * ( inVertsArray[j][0] + inVertsArray[j][1] + inVertsArray[j][2] );
|
||||
deflect = FTABLE_EVALUATE( table, temp ) * args[1] + args[0];
|
||||
deflect = R_TableEvaluate( deformv->func, temp ) * args[1] + args[0];
|
||||
VectorMA( inVertsArray[j], deflect, inNormalsArray[j], inVertsArray[j] );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DEFORM_NORMAL:
|
||||
// without this * 0.1f deformation looks wrong, although q3a doesn't have it
|
||||
args[0] = deformv->func.args[3] * r_currentShaderTime * 0.1f;
|
||||
|
@ -622,16 +621,13 @@ void R_DeformVertices( void )
|
|||
VectorNormalizeFast( inNormalsArray[j] );
|
||||
}
|
||||
break;
|
||||
|
||||
case DEFORM_MOVE:
|
||||
table = R_TableForFunc( deformv->func.type );
|
||||
temp = deformv->func.args[2] + r_currentShaderTime * deformv->func.args[3];
|
||||
deflect = FTABLE_EVALUATE( table, temp ) * deformv->func.args[1] + deformv->func.args[0];
|
||||
deflect = R_TableEvaluate( deformv->func, temp ) * deformv->func.args[1] + deformv->func.args[0];
|
||||
|
||||
for( j = 0; j < r_backacc.numVerts; j++ )
|
||||
VectorMA( inVertsArray[j], deflect, deformv->args, inVertsArray[j] );
|
||||
break;
|
||||
|
||||
case DEFORM_BULGE:
|
||||
args[0] = deformv->args[0];
|
||||
args[1] = deformv->args[1];
|
||||
|
@ -644,7 +640,6 @@ void R_DeformVertices( void )
|
|||
VectorMA( inVertsArray[j], deflect, inNormalsArray[j], inVertsArray[j] );
|
||||
}
|
||||
break;
|
||||
|
||||
case DEFORM_AUTOSPRITE:
|
||||
{
|
||||
vec4_t *v;
|
||||
|
@ -709,7 +704,6 @@ void R_DeformVertices( void )
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DEFORM_AUTOSPRITE2:
|
||||
if( r_backacc.numElems % 6 )
|
||||
break;
|
||||
|
@ -842,11 +836,9 @@ void R_DeformVertices( void )
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DEFORM_PROJECTION_SHADOW:
|
||||
R_DeformVPlanarShadow( r_backacc.numVerts, inVertsArray[0] );
|
||||
break;
|
||||
|
||||
case DEFORM_AUTOPARTICLE:
|
||||
{
|
||||
float scale;
|
||||
|
@ -972,7 +964,6 @@ static bool R_VertexTCBase( const ref_stage_t *pass, int unit, mat4x4_t matrix )
|
|||
pglTexCoordPointer( 2, GL_FLOAT, 0, tr.tcoordBuffer[unit]->pointer );
|
||||
return true;
|
||||
}
|
||||
|
||||
case TCGEN_VECTOR:
|
||||
{
|
||||
GLfloat genVector[2][4];
|
||||
|
@ -1032,7 +1023,6 @@ static bool R_VertexTCBase( const ref_stage_t *pass, int unit, mat4x4_t matrix )
|
|||
pglTexGenfv( GL_Q, GL_OBJECT_PLANE, genVector[3] );
|
||||
return false;
|
||||
}
|
||||
|
||||
case TCGEN_REFLECTION_CELLSHADE:
|
||||
if( RI.currententity && !( RI.params & RP_SHADOWMAPVIEW ) )
|
||||
{
|
||||
|
@ -1056,7 +1046,6 @@ static bool R_VertexTCBase( const ref_stage_t *pass, int unit, mat4x4_t matrix )
|
|||
GL_EnableTexGen( GL_R, GL_REFLECTION_MAP_ARB );
|
||||
GL_EnableTexGen( GL_Q, 0 );
|
||||
return true;
|
||||
|
||||
case TCGEN_FOG:
|
||||
{
|
||||
int fogPtype;
|
||||
|
@ -1135,7 +1124,6 @@ static bool R_VertexTCBase( const ref_stage_t *pass, int unit, mat4x4_t matrix )
|
|||
pglTexCoordPointer( 2, GL_FLOAT, 0, tr.tcoordBuffer[unit]->pointer );
|
||||
return false;
|
||||
}
|
||||
|
||||
case TCGEN_SVECTORS:
|
||||
GL_DisableAllTexGens();
|
||||
R_UpdateVertexBuffer( tr.tcoordBuffer[unit], sVectorsArray, r_backacc.numVerts * sizeof( vec4_t ));
|
||||
|
@ -1159,10 +1147,10 @@ R_ApplyTCMods
|
|||
static void R_ApplyTCMods( const ref_stage_t *pass, mat4x4_t result )
|
||||
{
|
||||
int i;
|
||||
const float *table;
|
||||
double t1, t2, sint, cost;
|
||||
mat4x4_t m1, m2;
|
||||
const tcMod_t *tcmod;
|
||||
waveFunc_t func;
|
||||
|
||||
for( i = 0, tcmod = pass->tcMods; i < pass->numtcMods; i++, tcmod++ )
|
||||
{
|
||||
|
@ -1181,14 +1169,15 @@ static void R_ApplyTCMods( const ref_stage_t *pass, mat4x4_t result )
|
|||
Matrix4_Scale2D( result, tcmod->args[0], tcmod->args[1] );
|
||||
break;
|
||||
case TCMOD_TURB:
|
||||
t1 = ( 1.0 / 4.0 );
|
||||
t1 = ( 1.0f / 4.0f );
|
||||
t2 = tcmod->args[2] + r_currentShaderTime * tcmod->args[3];
|
||||
Matrix4_Scale2D( result, 1 + ( tcmod->args[1] * R_FastSin( t2 ) + tcmod->args[0] ) * t1, 1 + ( tcmod->args[1] * R_FastSin( t2 + 0.25 ) + tcmod->args[0] ) * t1 );
|
||||
break;
|
||||
case TCMOD_STRETCH:
|
||||
table = R_TableForFunc( tcmod->args[0] );
|
||||
func.type = (uint)tcmod->args[0];
|
||||
func.tableIndex = (uint)tcmod->args[5];
|
||||
t2 = tcmod->args[3] + r_currentShaderTime * tcmod->args[4];
|
||||
t1 = FTABLE_EVALUATE( table, t2 ) * tcmod->args[2] + tcmod->args[1];
|
||||
t1 = R_TableEvaluate( func, t2 ) * tcmod->args[2] + tcmod->args[1];
|
||||
t1 = t1 ? 1.0f / t1 : 1.0f;
|
||||
t2 = 0.5f - 0.5f * t1;
|
||||
Matrix4_Stretch2D( result, t1, t2 );
|
||||
|
@ -1197,7 +1186,8 @@ static void R_ApplyTCMods( const ref_stage_t *pass, mat4x4_t result )
|
|||
t1 = tcmod->args[0] * r_currentShaderTime;
|
||||
t2 = tcmod->args[1] * r_currentShaderTime;
|
||||
if( pass->program_type != PROGRAM_TYPE_DISTORTION )
|
||||
{ // HACK HACK HACK
|
||||
{
|
||||
// HACKHACK
|
||||
t1 = t1 - floor( t1 );
|
||||
t2 = t2 - floor( t2 );
|
||||
}
|
||||
|
@ -1231,6 +1221,196 @@ static _inline texture_t *R_ShaderpassTex( const ref_stage_t *pass, int unit )
|
|||
return ( pass->textures[0] ? pass->textures[0] : tr.defaultTexture );
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
RB_SetShaderRenderMode
|
||||
|
||||
UNDONE: not all cases are filled
|
||||
=================
|
||||
*/
|
||||
static void R_ShaderpassRenderMode( ref_stage_t *pass )
|
||||
{
|
||||
int mod_type = mod_bad; // mod_bad interpretate as orthogonal shader
|
||||
|
||||
if(!(pass->flags & SHADERSTAGE_RENDERMODE))
|
||||
return;
|
||||
|
||||
if( RI.currentmodel && !glState.in2DMode )
|
||||
mod_type = RI.currentmodel->type;
|
||||
|
||||
switch( tr.iRenderMode )
|
||||
{
|
||||
case kRenderNormal:
|
||||
switch( mod_type )
|
||||
{
|
||||
case mod_bad:
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_world:
|
||||
case mod_brush:
|
||||
// bsp surfaces uses lightmaps and ignore color values as well
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->glState |= GLSTATE_DEPTHWRITE;
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_studio:
|
||||
// UNDONE: wrote R_StudioLighting, change rgbGen to RGBGEN_VERTEX
|
||||
// UNDONE: setup custom alpha channel for NF_ADDITIVE, change alphaGen to ALPHAGEN_VERTEX
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->rgbGen.type = RGBGEN_LIGHTING_AMBIENT_ONLY;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_sprite:
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->rgbGen.type = RGBGEN_LIGHTING_AMBIENT_ONLY;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case kRenderTransColor:
|
||||
switch( mod_type )
|
||||
{
|
||||
case mod_bad:
|
||||
pass->glState &= ~GLSTATE_ALPHAFUNC;
|
||||
pass->glState |= (GLSTATE_SRCBLEND_ZERO|GLSTATE_DSTBLEND_SRC_COLOR);
|
||||
pass->rgbGen.type = RGBGEN_VERTEX;
|
||||
pass->alphaGen.type = ALPHAGEN_VERTEX;
|
||||
break;
|
||||
case mod_world:
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->glState |= GLSTATE_DEPTHWRITE;
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_brush:
|
||||
case mod_studio:
|
||||
case mod_sprite:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case kRenderTransTexture:
|
||||
switch( mod_type )
|
||||
{
|
||||
case mod_bad:
|
||||
pass->glState &= ~GLSTATE_ALPHAFUNC;
|
||||
pass->glState |= (GLSTATE_SRCBLEND_SRC_ALPHA|GLSTATE_DSTBLEND_ONE_MINUS_SRC_ALPHA);
|
||||
pass->rgbGen.type = RGBGEN_VERTEX;
|
||||
pass->alphaGen.type = ALPHAGEN_VERTEX;
|
||||
break;
|
||||
case mod_world:
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->glState |= GLSTATE_DEPTHWRITE;
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_brush:
|
||||
pass->glState &= ~(GLSTATE_DEPTHWRITE|GLSTATE_ALPHAFUNC);
|
||||
pass->glState |= (GLSTATE_SRCBLEND_SRC_ALPHA|GLSTATE_DSTBLEND_ONE_MINUS_SRC_ALPHA);
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_ENTITY;
|
||||
break;
|
||||
case mod_studio:
|
||||
case mod_sprite:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case kRenderGlow:
|
||||
switch( mod_type )
|
||||
{
|
||||
case mod_bad:
|
||||
pass->glState &= ~GLSTATE_ALPHAFUNC;
|
||||
pass->glState |= (GLSTATE_SRCBLEND_SRC_ALPHA|GLSTATE_DSTBLEND_ONE);
|
||||
pass->rgbGen.type = RGBGEN_VERTEX;
|
||||
pass->alphaGen.type = ALPHAGEN_VERTEX;
|
||||
break;
|
||||
case mod_world:
|
||||
case mod_brush:
|
||||
// completely ignore glow mode for world surfaces
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->glState |= GLSTATE_DEPTHWRITE;
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_studio:
|
||||
case mod_sprite:
|
||||
pass->glState &= ~(GLSTATE_ALPHAFUNC|GLSTATE_DEPTHWRITE|GLSTATE_DEPTHFUNC_EQ);
|
||||
pass->glState |= (GLSTATE_SRCBLEND_ONE_MINUS_SRC_ALPHA|GLSTATE_DSTBLEND_ONE);
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY; // hl1 glow sprites ignores color
|
||||
pass->alphaGen.type = ALPHAGEN_ENTITY;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case kRenderTransAlpha:
|
||||
switch( mod_type )
|
||||
{
|
||||
case mod_bad:
|
||||
pass->glState &= ~GLSTATE_BLENDFUNC;
|
||||
pass->glState |= GLSTATE_AFUNC_GE128;
|
||||
pass->rgbGen.type = RGBGEN_VERTEX;
|
||||
pass->alphaGen.type = ALPHAGEN_VERTEX;
|
||||
break;
|
||||
case mod_world:
|
||||
// always ignore transparent surfaces for world
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->glState |= GLSTATE_DEPTHWRITE;
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_brush:
|
||||
pass->glState &= ~GLSTATE_BLENDFUNC;
|
||||
pass->glState |= GLSTATE_AFUNC_GE128;
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
case mod_studio:
|
||||
// UNDONE: wrote R_StudioLighting, change rgbGen to RGBGEN_VERTEX
|
||||
// UNDONE: setup custom alpha channel for NF_ADDITIVE, change alphaGen to ALPHAGEN_VERTEX
|
||||
pass->glState &= ~GLSTATE_BLENDFUNC;
|
||||
pass->glState |= GLSTATE_AFUNC_GE128;
|
||||
pass->rgbGen.type = RGBGEN_LIGHTING_AMBIENT_ONLY;
|
||||
pass->alphaGen.type = ALPHAGEN_ENTITY;
|
||||
case mod_sprite:
|
||||
pass->glState &= ~GLSTATE_BLENDFUNC;
|
||||
pass->glState |= GLSTATE_AFUNC_GE128;
|
||||
pass->rgbGen.type = RGBGEN_LIGHTING_AMBIENT_ONLY;
|
||||
pass->alphaGen.type = ALPHAGEN_ENTITY;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case kRenderTransAdd:
|
||||
switch( mod_type )
|
||||
{
|
||||
case mod_bad:
|
||||
pass->glState &= ~GLSTATE_ALPHAFUNC;
|
||||
pass->glState |= (GLSTATE_SRCBLEND_SRC_ALPHA|GLSTATE_DSTBLEND_ONE);
|
||||
pass->rgbGen.type = RGBGEN_VERTEX;
|
||||
pass->alphaGen.type = ALPHAGEN_VERTEX;
|
||||
break;
|
||||
case mod_world:
|
||||
pass->glState &= ~(GLSTATE_BLENDFUNC|GLSTATE_ALPHAFUNC);
|
||||
pass->glState |= GLSTATE_DEPTHWRITE;
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_IDENTITY;
|
||||
break;
|
||||
case mod_brush:
|
||||
pass->glState &= ~(GLSTATE_ALPHAFUNC|GLSTATE_DEPTHWRITE);
|
||||
pass->glState |= (GLSTATE_SRCBLEND_SRC_ALPHA|GLSTATE_DSTBLEND_ONE);
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_ENTITY;
|
||||
break;
|
||||
case mod_studio:
|
||||
case mod_sprite:
|
||||
pass->glState &= ~(GLSTATE_ALPHAFUNC|GLSTATE_DEPTHWRITE);
|
||||
pass->glState |= (GLSTATE_SRCBLEND_SRC_ALPHA|GLSTATE_DSTBLEND_ONE);
|
||||
pass->rgbGen.type = RGBGEN_IDENTITY_LIGHTING;
|
||||
pass->alphaGen.type = ALPHAGEN_ENTITY;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
R_BindShaderpass
|
||||
|
@ -1241,12 +1421,11 @@ static void R_BindShaderpass( const ref_stage_t *pass, texture_t *tex, int unit
|
|||
mat4x4_t m1, m2, result;
|
||||
bool identityMatrix;
|
||||
|
||||
if( !tex )
|
||||
tex = R_ShaderpassTex( pass, unit );
|
||||
if( !tex ) tex = R_ShaderpassTex( pass, unit );
|
||||
|
||||
GL_Bind( unit, tex );
|
||||
if( unit && !pass->program ) pglEnable( GL_TEXTURE_2D );
|
||||
GL_SetTexCoordArrayMode( ( tex->flags & TF_CUBEMAP ? GL_TEXTURE_CUBE_MAP_ARB : GL_TEXTURE_COORD_ARRAY ));
|
||||
GL_SetTexCoordArrayMode(( tex->flags & TF_CUBEMAP ? GL_TEXTURE_CUBE_MAP_ARB : GL_TEXTURE_COORD_ARRAY ));
|
||||
|
||||
identityMatrix = R_VertexTCBase( pass, unit, result );
|
||||
|
||||
|
@ -1267,8 +1446,7 @@ static void R_BindShaderpass( const ref_stage_t *pass, texture_t *tex, int unit
|
|||
|
||||
if( identityMatrix )
|
||||
GL_LoadIdentityTexMatrix();
|
||||
else
|
||||
GL_LoadTexMatrix( result );
|
||||
else GL_LoadTexMatrix( result );
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1279,9 +1457,9 @@ R_ModifyColor
|
|||
void R_ModifyColor( const ref_stage_t *pass )
|
||||
{
|
||||
uint i;
|
||||
float a;
|
||||
int c, bits;
|
||||
double temp;
|
||||
float *table, a;
|
||||
vec3_t t, v, style;
|
||||
byte *bArray, *inArray, rgba[4] = { 255, 255, 255, 255 };
|
||||
bool noArray, identityAlpha, entityAlpha;
|
||||
|
@ -1297,18 +1475,18 @@ void R_ModifyColor( const ref_stage_t *pass )
|
|||
if( pass->rgbGen.type == RGBGEN_IDENTITY_LIGHTING )
|
||||
{
|
||||
entityAlpha = identityAlpha = false;
|
||||
memset( bArray, r_identityLighting, sizeof( rgba_t ) * r_backacc.numColors );
|
||||
Mem_Set( bArray, r_identityLighting, sizeof( rgba_t ) * r_backacc.numColors );
|
||||
}
|
||||
else if( pass->rgbGen.type == RGBGEN_EXACT_VERTEX )
|
||||
{
|
||||
entityAlpha = identityAlpha = false;
|
||||
memcpy( bArray, inArray, sizeof( rgba_t ) * r_backacc.numColors );
|
||||
Mem_Copy( bArray, inArray, sizeof( rgba_t ) * r_backacc.numColors );
|
||||
}
|
||||
else
|
||||
{
|
||||
entityAlpha = false;
|
||||
identityAlpha = true;
|
||||
memset( bArray, 255, sizeof( rgba_t ) * r_backacc.numColors );
|
||||
Mem_Set( bArray, 255, sizeof( rgba_t ) * r_backacc.numColors );
|
||||
|
||||
switch( pass->rgbGen.type )
|
||||
{
|
||||
|
@ -1330,9 +1508,8 @@ void R_ModifyColor( const ref_stage_t *pass )
|
|||
}
|
||||
else
|
||||
{
|
||||
table = R_TableForFunc( rgbgenfunc->type );
|
||||
temp = r_currentShaderTime * rgbgenfunc->args[3] + rgbgenfunc->args[2];
|
||||
temp = FTABLE_EVALUATE( table, temp ) * rgbgenfunc->args[1] + rgbgenfunc->args[0];
|
||||
temp = R_TableEvaluate( *rgbgenfunc, temp ) * rgbgenfunc->args[1] + rgbgenfunc->args[0];
|
||||
}
|
||||
|
||||
temp = temp * rgbgenfunc->args[1] + rgbgenfunc->args[0];
|
||||
|
@ -1389,7 +1566,7 @@ void R_ModifyColor( const ref_stage_t *pass )
|
|||
float *tc;
|
||||
vec3_t temp[MAX_ARRAY_VERTS];
|
||||
|
||||
memset( temp, 0, sizeof( vec3_t ) * r_backacc.numColors );
|
||||
Mem_Set( temp, 0, sizeof( vec3_t ) * r_backacc.numColors );
|
||||
|
||||
for( j = 0; j < LM_STYLES && r_superLightStyle->vertexStyles[j] != 255; j++ )
|
||||
{
|
||||
|
@ -1504,9 +1681,8 @@ void R_ModifyColor( const ref_stage_t *pass )
|
|||
}
|
||||
else
|
||||
{
|
||||
table = R_TableForFunc( alphagenfunc->type );
|
||||
a = alphagenfunc->args[2] + r_currentShaderTime * alphagenfunc->args[3];
|
||||
a = FTABLE_EVALUATE( table, a );
|
||||
a = R_TableEvaluate( *alphagenfunc, a );
|
||||
}
|
||||
|
||||
a = a * alphagenfunc->args[1] + alphagenfunc->args[0];
|
||||
|
@ -1734,6 +1910,7 @@ void R_RenderMeshGeneric( void )
|
|||
{
|
||||
const ref_stage_t *pass = r_accumPasses[0];
|
||||
|
||||
R_ShaderpassRenderMode( (ref_stage_t *)pass );
|
||||
R_BindShaderpass( pass, NULL, 0 );
|
||||
R_ModifyColor( pass );
|
||||
|
||||
|
|
|
@ -80,6 +80,7 @@ typedef struct
|
|||
{
|
||||
// renderer global variables
|
||||
int registration_sequence;
|
||||
kRenderMode_t iRenderMode;
|
||||
|
||||
// vbo stuff
|
||||
int numVertexBufferObjects;
|
||||
|
|
2845
render/r_backend.old
2845
render/r_backend.old
File diff suppressed because it is too large
Load Diff
|
@ -56,6 +56,7 @@ void R_DrawStretchPic( float x, float y, float w, float h, float s1, float t1, f
|
|||
}
|
||||
}
|
||||
|
||||
tr.iRenderMode = glState.draw_rendermode;
|
||||
pic_mbuffer.infokey -= 4;
|
||||
pic_mbuffer.shaderkey = shader->sortkey;
|
||||
|
||||
|
|
|
@ -759,6 +759,7 @@ enum
|
|||
// #define SHADERPASS_DSTBLEND_MASK (((GLSTATE_DSTBLEND_DST_ALPHA)<<1)-GLSTATE_DSTBLEND_ZERO)
|
||||
#define GLSTATE_DSTBLEND_MASK 0xF0
|
||||
|
||||
#define GLSTATE_BLENDFUNC ( GLSTATE_SRCBLEND_MASK|GLSTATE_DSTBLEND_MASK )
|
||||
#define GLSTATE_ALPHAFUNC ( GLSTATE_AFUNC_GT0|GLSTATE_AFUNC_LT128|GLSTATE_AFUNC_GE128 )
|
||||
|
||||
typedef struct
|
||||
|
|
|
@ -92,8 +92,8 @@ static void R_LoadTable( const char *name, tableFlags_t flags, size_t size, floa
|
|||
Host_Error( "R_LoadTable: MAX_TABLES limit exceeds\n" );
|
||||
|
||||
// fill it in
|
||||
r_tables[r_numTables++] = table = Mem_Alloc( r_shaderpool, sizeof( table_t ));
|
||||
com.strncpy( table->name, name, sizeof( table->name ));
|
||||
table = r_tables[r_numTables++] = Mem_Alloc( r_shaderpool, sizeof( table_t ));
|
||||
table->name = Shader_CopyString( name );
|
||||
table->index = r_numTables - 1;
|
||||
table->flags = flags;
|
||||
table->size = size;
|
||||
|
@ -274,7 +274,7 @@ static bool R_ParseTable( script_t *script, tableFlags_t flags )
|
|||
R_LookupTable
|
||||
=================
|
||||
*/
|
||||
static float R_LookupTable( int tableIndex, float index )
|
||||
float R_LookupTable( int tableIndex, float index )
|
||||
{
|
||||
table_t *table;
|
||||
float frac, value;
|
||||
|
@ -308,6 +308,27 @@ static float R_LookupTable( int tableIndex, float index )
|
|||
return value;
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
R_GetTableByHandle
|
||||
=================
|
||||
*/
|
||||
float *R_GetTableByHandle( int tableIndex )
|
||||
{
|
||||
table_t *table;
|
||||
|
||||
if( tableIndex < 0 || tableIndex >= r_numTables )
|
||||
{
|
||||
MsgDev( D_ERROR, "R_GetTableByHandle: out of range\n" );
|
||||
return NULL;
|
||||
}
|
||||
table = r_tables[tableIndex];
|
||||
|
||||
if( !table ) return NULL;
|
||||
return table->values;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
=======================================================================
|
||||
|
||||
|
@ -637,10 +658,13 @@ static bool Shader_ParseSkySides( script_t *script, ref_shader_t *shader, ref_sh
|
|||
static bool Shader_ParseFunc( script_t *script, waveFunc_t *func, ref_shader_t *shader )
|
||||
{
|
||||
token_t tok;
|
||||
table_t *tb;
|
||||
|
||||
if( !Com_ReadToken( script, false, &tok ))
|
||||
return false;
|
||||
|
||||
func->tableIndex = -1;
|
||||
|
||||
if( !com.stricmp( tok.string, "0" )) func->type = WAVEFORM_SIN;
|
||||
else if( !com.stricmp( tok.string, "sin" )) func->type = WAVEFORM_SIN;
|
||||
else if( !com.stricmp( tok.string, "triangle" )) func->type = WAVEFORM_TRIANGLE;
|
||||
|
@ -649,10 +673,19 @@ static bool Shader_ParseFunc( script_t *script, waveFunc_t *func, ref_shader_t *
|
|||
else if( !com.stricmp( tok.string, "inverseSawtooth" )) func->type = WAVEFORM_INVERSESAWTOOTH;
|
||||
else if( !com.stricmp( tok.string, "noise" )) func->type = WAVEFORM_NOISE;
|
||||
else
|
||||
{ // check for custom table
|
||||
tb = R_FindTable( tok.string );
|
||||
if( tb )
|
||||
{
|
||||
func->type = WAVEFORM_TABLE;
|
||||
func->tableIndex = tb->index;
|
||||
}
|
||||
else
|
||||
{
|
||||
MsgDev( D_WARN, "unknown waveform '%s' in shader '%s', defaulting to sin\n", tok.string, shader->name );
|
||||
func->type = WAVEFORM_SIN;
|
||||
}
|
||||
}
|
||||
|
||||
if( !Shader_ParseVector( script, func->args, 4 ))
|
||||
{
|
||||
|
@ -2065,6 +2098,7 @@ static bool Shaderpass_TcMod( ref_shader_t *shader, ref_stage_t *pass, script_t
|
|||
}
|
||||
|
||||
tcMod->args[0] = func.type;
|
||||
tcMod->args[5] = func.tableIndex;
|
||||
for( i = 1; i < 5; i++ )
|
||||
tcMod->args[i] = func.args[i-1];
|
||||
tcMod->type = TCMOD_STRETCH;
|
||||
|
@ -2352,7 +2386,10 @@ void R_ShaderList_f( void )
|
|||
Msg( "?? %i", shader->type );
|
||||
break;
|
||||
}
|
||||
Msg( " %s\n", shader->name );
|
||||
Msg( " %s", shader->name );
|
||||
if( shader->flags & SHADER_DEFAULTED )
|
||||
Msg( " DEFAULTED\n" );
|
||||
else Msg( "\n" );
|
||||
shaderCount++;
|
||||
}
|
||||
|
||||
|
@ -3504,6 +3541,7 @@ static ref_shader_t *Shader_CreateDefault( ref_shader_t *shader, int type, int a
|
|||
|
||||
// calculate sortkey
|
||||
shader->sortkey = Shader_Sortkey( shader, shader->sort );
|
||||
shader->flags |= SHADER_DEFAULTED;
|
||||
|
||||
// add to hash table
|
||||
hashKey = Com_HashKey( shortname, SHADERS_HASH_SIZE );
|
||||
|
|
|
@ -70,6 +70,7 @@ typedef enum
|
|||
SHADER_PORTAL_CAPTURE1 = BIT(15),
|
||||
SHADER_PORTAL_CAPTURE2 = BIT(16),
|
||||
SHADER_RENDERMODE = BIT(17),
|
||||
SHADER_DEFAULTED = BIT(18),
|
||||
SHADER_PORTAL_CAPTURE = (SHADER_PORTAL_CAPTURE1|SHADER_PORTAL_CAPTURE1),
|
||||
SHADER_CULL = (SHADER_CULL_FRONT|SHADER_CULL_BACK)
|
||||
} shaderFlags_t;
|
||||
|
@ -121,7 +122,8 @@ typedef enum
|
|||
WAVEFORM_SAWTOOTH,
|
||||
WAVEFORM_INVERSESAWTOOTH,
|
||||
WAVEFORM_NOISE,
|
||||
WAVEFORM_CONSTANT
|
||||
WAVEFORM_CONSTANT,
|
||||
WAVEFORM_TABLE // custom table
|
||||
} waveForm_t;
|
||||
|
||||
// RGB colors generation
|
||||
|
@ -237,6 +239,7 @@ typedef struct table_s
|
|||
typedef struct
|
||||
{
|
||||
waveForm_t type; // SHADER_FUNC enum
|
||||
uint tableIndex; // valid only for WAVEFORM_TABLE
|
||||
float args[4]; // offset, amplitude, phase_offset, rate
|
||||
} waveFunc_t;
|
||||
|
||||
|
@ -333,6 +336,8 @@ ref_shader_t *R_LoadShader( const char *name, int type, bool forceDefault, int a
|
|||
|
||||
// misc utilities
|
||||
void R_ShaderFreeUnused( void );
|
||||
float R_LookupTable( int tableIndex, float index );
|
||||
float *R_GetTableByHandle( int tableIndex );
|
||||
void Shader_TouchImages( ref_shader_t *shader, bool free_unused );
|
||||
void R_ShaderSetSpriteTexture( texture_t *mipTex );
|
||||
void R_ShaderSetRenderMode( kRenderMode_t mode );
|
||||
|
|
1430
render/r_skm.c
1430
render/r_skm.c
File diff suppressed because it is too large
Load Diff
|
@ -6,13 +6,13 @@
|
|||
--------------------Configuration: render - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPD5.tmp" with contents
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP47C.tmp" with contents
|
||||
[
|
||||
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "../public" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\render\!debug/" /Fo"..\temp\render\!debug/" /Fd"..\temp\render\!debug/" /FD /c
|
||||
"D:\Xash3D\src_main\render\r_image.c"
|
||||
"D:\Xash3D\src_main\render\r_backend.c"
|
||||
]
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPD5.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPD6.tmp" with contents
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP47C.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP47D.tmp" with contents
|
||||
[
|
||||
msvcrtd.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\render\!debug/render.pdb" /debug /machine:I386 /nodefaultlib:"msvcrt.lib" /out:"..\temp\render\!debug/render.dll" /implib:"..\temp\render\!debug/render.lib" /pdbtype:sept
|
||||
"\Xash3D\src_main\temp\render\!debug\cin.obj"
|
||||
|
@ -38,16 +38,17 @@ msvcrtd.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /incremental:ye
|
|||
"\Xash3D\src_main\temp\render\!debug\r_sky.obj"
|
||||
"\Xash3D\src_main\temp\render\!debug\r_surf.obj"
|
||||
]
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPD6.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPD7.bat" with contents
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP47D.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP47E.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\render\!debug\render.dll "D:\Xash3D\bin\render.dll"
|
||||
]
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPD7.bat"
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP47E.bat"
|
||||
Compiling...
|
||||
r_image.c
|
||||
r_backend.c
|
||||
Linking...
|
||||
Creating library ..\temp\render\!debug/render.lib and object ..\temp\render\!debug/render.exp
|
||||
<h3>Output Window</h3>
|
||||
Performing Custom Build Step on \Xash3D\src_main\temp\render\!debug\render.dll
|
||||
‘ª®¯¨à®¢ ® ä ©«®¢: 1.
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
Copyright (C) 1997-2001 Id Software, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
See the GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
0.000000, 0.098165, 0.196270, 0.294259, 0.392069, 0.489643, 0.586920, 0.683850,
|
||||
0.780360, 0.876405, 0.971920, 1.066850, 1.161140, 1.254725, 1.347560, 1.439580,
|
||||
1.530735, 1.620965, 1.710220, 1.798445, 1.885585, 1.971595, 2.056410, 2.139990,
|
||||
2.222280, 2.303235, 2.382795, 2.460925, 2.537575, 2.612690, 2.686235, 2.758160,
|
||||
2.828425, 2.896990, 2.963805, 3.028835, 3.092040, 3.153385, 3.212830, 3.270340,
|
||||
3.325880, 3.379415, 3.430915, 3.480350, 3.527685, 3.572895, 3.615955, 3.656840,
|
||||
3.695520, 3.731970, 3.766175, 3.798115, 3.827760, 3.855105, 3.880125, 3.902810,
|
||||
3.923140, 3.941110, 3.956705, 3.969920, 3.980740, 3.989160, 3.995180, 3.998795,
|
||||
4.000000, 3.998795, 3.995180, 3.989160, 3.980740, 3.969920, 3.956705, 3.941110,
|
||||
3.923140, 3.902810, 3.880125, 3.855105, 3.827760, 3.798115, 3.766175, 3.731970,
|
||||
3.695520, 3.656840, 3.615955, 3.572895, 3.527685, 3.480350, 3.430915, 3.379415,
|
||||
3.325880, 3.270340, 3.212830, 3.153385, 3.092040, 3.028835, 2.963805, 2.896990,
|
||||
2.828425, 2.758160, 2.686235, 2.612690, 2.537575, 2.460925, 2.382795, 2.303235,
|
||||
2.222280, 2.139990, 2.056410, 1.971595, 1.885585, 1.798445, 1.710220, 1.620965,
|
||||
1.530735, 1.439580, 1.347560, 1.254725, 1.161140, 1.066850, 0.971920, 0.876405,
|
||||
0.780360, 0.683850, 0.586920, 0.489643, 0.392069, 0.294259, 0.196270, 0.098165,
|
||||
0.000000, -0.098165, -0.196270, -0.294259, -0.392069, -0.489643, -0.586920, -0.683850,
|
||||
-0.780360, -0.876405, -0.971920, -1.066850, -1.161140, -1.254725, -1.347560, -1.439580,
|
||||
-1.530735, -1.620965, -1.710220, -1.798445, -1.885585, -1.971595, -2.056410, -2.139990,
|
||||
-2.222280, -2.303235, -2.382795, -2.460925, -2.537575, -2.612690, -2.686235, -2.758160,
|
||||
-2.828425, -2.896990, -2.963805, -3.028835, -3.092040, -3.153385, -3.212830, -3.270340,
|
||||
-3.325880, -3.379415, -3.430915, -3.480350, -3.527685, -3.572895, -3.615955, -3.656840,
|
||||
-3.695520, -3.731970, -3.766175, -3.798115, -3.827760, -3.855105, -3.880125, -3.902810,
|
||||
-3.923140, -3.941110, -3.956705, -3.969920, -3.980740, -3.989160, -3.995180, -3.998795,
|
||||
-4.000000, -3.998795, -3.995180, -3.989160, -3.980740, -3.969920, -3.956705, -3.941110,
|
||||
-3.923140, -3.902810, -3.880125, -3.855105, -3.827760, -3.798115, -3.766175, -3.731970,
|
||||
-3.695520, -3.656840, -3.615955, -3.572895, -3.527685, -3.480350, -3.430915, -3.379415,
|
||||
-3.325880, -3.270340, -3.212830, -3.153385, -3.092040, -3.028835, -2.963805, -2.896990,
|
||||
-2.828425, -2.758160, -2.686235, -2.612690, -2.537575, -2.460925, -2.382795, -2.303235,
|
||||
-2.222280, -2.139990, -2.056410, -1.971595, -1.885585, -1.798445, -1.710220, -1.620965,
|
||||
-1.530735, -1.439580, -1.347560, -1.254725, -1.161140, -1.066850, -0.971920, -0.876405,
|
||||
-0.780360, -0.683850, -0.586920, -0.489643, -0.392069, -0.294259, -0.196270, -0.098165,
|
|
@ -1,100 +0,0 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: server - Win32 Debug--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPBB.tmp" with contents
|
||||
[
|
||||
/nologo /MDd /W3 /Gm /Gi /GX /ZI /Od /I "./" /I "ents" /I "game" /I "global" /I "monsters" /I "../common" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /FR"..\temp\server\!debug/" /Fo"..\temp\server\!debug/" /Fd"..\temp\server\!debug/" /FD /c
|
||||
"D:\Xash3D\src_main\server\global\client.cpp"
|
||||
]
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPBB.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPBC.tmp" with contents
|
||||
[
|
||||
msvcrtd.lib /nologo /subsystem:windows /dll /incremental:yes /pdb:"..\temp\server\!debug/server.pdb" /debug /machine:I386 /nodefaultlib:"libc.lib" /def:".\server.def" /out:"..\temp\server\!debug/server.dll" /implib:"..\temp\server\!debug/server.lib" /pdbtype:sept
|
||||
"\Xash3D\src_main\temp\server\!debug\ai_sound.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\animating.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\animation.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\apache.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\barnacle.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\barney.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basebrush.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseentity.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basefunc.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basefx.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseinfo.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseitem.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baselogic.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basemonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basemover.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseother.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basepath.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basephys.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baserockets.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basetank.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\basetrigger.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseutil.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseweapon.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\baseworld.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\client.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\combat.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\decals.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\defaultai.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\dll_int.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\flyingmonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\game.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\generic.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\globals.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\gman.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\hassassin.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\headcrab.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\hgrunt.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\leech.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\legacy.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\lights.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\multiplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\nodes.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\osprey.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\parent.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\player.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\rat.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\roach.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\saverestore.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\scientist.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\scripted.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\sfx.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\singleplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\sound.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\squadmonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\talkmonster.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\teamplay_gamerules.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\turret.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\utils.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\weapon_generic.obj"
|
||||
"\Xash3D\src_main\temp\server\!debug\zombie.obj"
|
||||
]
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPBC.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPBD.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\server\!debug\server.dll "D:\Xash3D\bin\server.dll"
|
||||
]
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSPBD.bat"
|
||||
Compiling...
|
||||
client.cpp
|
||||
Linking...
|
||||
<h3>Output Window</h3>
|
||||
Performing Custom Build Step on \Xash3D\src_main\temp\server\!debug\server.dll
|
||||
‘ª®¯¨à®¢ ® ä ©«®¢: 1.
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
server.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
5
todo.log
5
todo.log
|
@ -111,9 +111,10 @@ Beta 13.12.08
|
|||
80. implement $rgb, $alpha OK
|
||||
89. get rid of R_Upload32 OK
|
||||
90. get rid of Com_ParseExt OK
|
||||
91. Xash backend extensions
|
||||
91. implement rendermodes
|
||||
92. implement VBO OK
|
||||
93. implement sky rotate
|
||||
94. make default sky shader, R_SetupSky
|
||||
95. support for custom tables (external)
|
||||
95. support for custom tables (external) OK
|
||||
96. implement sprite format
|
||||
97. fix fog color on q3tourney5
|
||||
|
|
Reference in New Issue