03 Sep 2009
This commit is contained in:
parent
d71ae7d5a6
commit
b2a84e1e9e
|
@ -0,0 +1,16 @@
|
|||
<html>
|
||||
<body>
|
||||
<pre>
|
||||
<h1>Build Log</h1>
|
||||
<h3>
|
||||
--------------------Configuration: launch - Win32 Release--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
|
||||
|
||||
|
||||
<h3>Results</h3>
|
||||
launch.dll - 0 error(s), 0 warning(s)
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
|
@ -789,7 +789,7 @@ bool R_GetPixelFormat( const char *name, rgbdata_t *pic, uint tex_flags )
|
|||
int w, h, d, i, s, BlockSize;
|
||||
size_t mipsize, totalsize = 0;
|
||||
|
||||
if( !pic || !pic->buffer ) return false;
|
||||
if( !pic ) return false; // pass images with NULL buffer (e.g. shadowmaps, portalmaps )
|
||||
Mem_EmptyPool( r_imagepool ); // flush buffers
|
||||
Mem_Set( &image_desc, 0, sizeof( image_desc ));
|
||||
|
||||
|
@ -3544,17 +3544,17 @@ static void R_InitScreenTexture( texture_t **ptr, const char *name, int id, int
|
|||
|
||||
if( !*ptr )
|
||||
{
|
||||
string name;
|
||||
string uploadName;
|
||||
|
||||
com.snprintf( name, sizeof( name ), "***%s%i***", name, id );
|
||||
com.snprintf( uploadName, sizeof( uploadName ), "***%s%i***", name, id );
|
||||
|
||||
r_screen.width = width;
|
||||
r_screen.height = height;
|
||||
r_screen.type = PF_RGB_24;
|
||||
r_screen.type = PF_LUMINANCE;
|
||||
r_screen.buffer = data;
|
||||
r_screen.depth = r_screen.numMips = 1;
|
||||
r_screen.size = width * height * samples;
|
||||
*ptr = R_LoadTexture( name, &r_screen, samples, flags );
|
||||
*ptr = R_LoadTexture( uploadName, &r_screen, samples, flags );
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -253,6 +253,15 @@ typedef struct studiolight_s
|
|||
int numdynlights;
|
||||
} studiolight_t;
|
||||
|
||||
typedef struct studioverts_s
|
||||
{
|
||||
vec3_t *verts;
|
||||
vec3_t *norms;
|
||||
int numverts;
|
||||
int numnorms;
|
||||
int m_nCachedFrame; // to avoid transform it twice
|
||||
} studioverts_t;
|
||||
|
||||
typedef struct studiovars_s
|
||||
{
|
||||
studiolatched_t prev;
|
||||
|
@ -266,8 +275,10 @@ typedef struct studiovars_s
|
|||
matrix4x4 *bonestransform;
|
||||
int numbones;
|
||||
|
||||
// StudioBoneLighting (fast but ugly)
|
||||
// StudioBoneLighting (slow and ugly)
|
||||
studiolight_t *light; // FIXME: alloc match size not maximum
|
||||
studioverts_t *mesh[MAXSTUDIOMODELS];
|
||||
int num_models;
|
||||
} studiovars_t;
|
||||
|
||||
typedef struct ref_entity_s
|
||||
|
|
|
@ -2152,8 +2152,8 @@ bool R_AddGenericEntity( edict_t *pRefEntity, ref_entity_t *refent, int ed_type,
|
|||
// setup light origin
|
||||
if( refent->model ) VectorAverage( refent->model->mins, refent->model->maxs, center );
|
||||
else VectorClear( center );
|
||||
VectorAdd( pRefEntity->v.origin, center, refent->lightingOrigin );
|
||||
if( refent->flags & EF_INVLIGHT ) refent->lightingOrigin[2] += center[2];
|
||||
VectorCopy( pRefEntity->v.origin, refent->lightingOrigin );
|
||||
if( refent->ent_type == ED_CLIENT ) refent->lightingOrigin[2] -= 32;
|
||||
|
||||
// do animate
|
||||
if( refent->flags & EF_ANIMATE )
|
||||
|
@ -2288,6 +2288,15 @@ bool R_AddGenericEntity( edict_t *pRefEntity, ref_entity_t *refent, int ed_type,
|
|||
|
||||
if( studio->bonestransform ) Mem_Free( studio->bonestransform );
|
||||
if( studio->light ) Mem_Free( studio->light );
|
||||
for( i = 0; i < studio->num_models; i++ )
|
||||
{
|
||||
if( studio->mesh[i] )
|
||||
{
|
||||
if( studio->mesh[i]->verts ) Mem_Free( studio->mesh[i]->verts );
|
||||
if( studio->mesh[i]->norms ) Mem_Free( studio->mesh[i]->norms );
|
||||
Mem_Free( studio->mesh[i] );
|
||||
}
|
||||
}
|
||||
Mem_Free( refent->extradata );
|
||||
}
|
||||
refent->extradata = NULL;
|
||||
|
|
|
@ -321,7 +321,7 @@ add:
|
|||
VectorSubtract( group->mins, origin, mins );
|
||||
VectorSubtract( group->maxs, origin, maxs );
|
||||
radius = RadiusFromBounds( mins, maxs );
|
||||
group->projDist = max( group->projDist, radius * ent->scale * 2 + min( r_shadows_projection_distance->value, 64 ) );
|
||||
group->projDist = max( group->projDist, radius * ent->scale * 2 + min( r_shadows_projection_distance->value, 64 ));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
215
render/r_skin.c
215
render/r_skin.c
|
@ -1,215 +0,0 @@
|
|||
/*
|
||||
Copyright (C) 2002-2007 Victor Luchits
|
||||
|
||||
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.
|
||||
|
||||
*/
|
||||
|
||||
#include "r_local.h"
|
||||
|
||||
#define SkinFile_CopyString( str ) com.stralloc( r_skinsPool, str, __FILE__, __LINE__ )
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *meshname;
|
||||
ref_shader_t *shader;
|
||||
} mesh_shader_pair_t;
|
||||
|
||||
typedef struct skinfile_s
|
||||
{
|
||||
char *name;
|
||||
mesh_shader_pair_t *pairs;
|
||||
int numpairs;
|
||||
} skinfile_t;
|
||||
|
||||
static skinfile_t r_skinfiles[MAX_SKINFILES];
|
||||
static byte *r_skinsPool;
|
||||
|
||||
/*
|
||||
================
|
||||
R_InitSkinFiles
|
||||
================
|
||||
*/
|
||||
void R_InitSkinFiles( void )
|
||||
{
|
||||
r_skinsPool = Mem_AllocPool( "Skins" );
|
||||
Mem_Set( r_skinfiles, 0, sizeof( r_skinfiles ));
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
SkinFile_FreeSkinFile
|
||||
================
|
||||
*/
|
||||
static void SkinFile_FreeSkinFile( skinfile_t *skinfile )
|
||||
{
|
||||
int i;
|
||||
|
||||
for( i = 0; i < skinfile->numpairs; i++ )
|
||||
Mem_Free( skinfile->pairs[i].meshname );
|
||||
|
||||
Mem_Free( skinfile->pairs );
|
||||
Mem_Free( skinfile->name );
|
||||
Mem_Set( skinfile, 0, sizeof( skinfile_t ));
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
R_FindShaderForSkinFile
|
||||
================
|
||||
*/
|
||||
ref_shader_t *R_FindShaderForSkinFile( const skinfile_t *skinfile, const char *meshname )
|
||||
{
|
||||
int i;
|
||||
mesh_shader_pair_t *pair;
|
||||
|
||||
if( !skinfile || !skinfile->numpairs )
|
||||
return NULL;
|
||||
|
||||
for( i = 0, pair = skinfile->pairs; i < skinfile->numpairs; i++, pair++ )
|
||||
{
|
||||
if( !com.stricmp( pair->meshname, meshname ) )
|
||||
return pair->shader;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
SkinFile_ParseBuffer
|
||||
================
|
||||
*/
|
||||
static int SkinFile_ParseBuffer( char *buffer, mesh_shader_pair_t *pairs )
|
||||
{
|
||||
int numpairs;
|
||||
string skinname;
|
||||
string meshname;
|
||||
script_t *script;
|
||||
token_t tok;
|
||||
|
||||
script = Com_OpenScript( "skinfile", buffer, com.strlen( buffer ));
|
||||
numpairs = 0;
|
||||
|
||||
while( 1 )
|
||||
{
|
||||
if( !Com_ReadToken( script, SC_ALLOW_NEWLINES, &tok )) // skip tag
|
||||
break;
|
||||
if( !com.strcmp( tok.string, "," ))
|
||||
{
|
||||
if( !Com_ReadToken( script, SC_ALLOW_PATHNAMES, &tok ))
|
||||
continue; // tag without shadername
|
||||
com.strncpy( skinname, tok.string, sizeof( skinname ));
|
||||
FS_StripExtension( skinname );
|
||||
}
|
||||
else
|
||||
{
|
||||
com.strncpy( meshname, tok.string, sizeof( meshname ));
|
||||
continue; // waiting for ','
|
||||
}
|
||||
|
||||
if( pairs )
|
||||
{
|
||||
pairs[numpairs].meshname = SkinFile_CopyString( meshname );
|
||||
pairs[numpairs].shader = R_LoadShader( skinname, SHADER_ALIAS_MD3, false, 0, SHADER_INVALID );
|
||||
}
|
||||
numpairs++;
|
||||
}
|
||||
Com_CloseScript( script );
|
||||
|
||||
return numpairs;
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
R_RegisterSkinFile
|
||||
================
|
||||
*/
|
||||
skinfile_t *R_RegisterSkinFile( const char *name )
|
||||
{
|
||||
string filename;
|
||||
int i;
|
||||
char *buffer;
|
||||
skinfile_t *skinfile;
|
||||
|
||||
com.strncpy( filename, name, sizeof( filename ) );
|
||||
FS_DefaultExtension( filename, ".skin" );
|
||||
|
||||
for( i = 0, skinfile = r_skinfiles; i < MAX_SKINFILES; i++, skinfile++ )
|
||||
{
|
||||
if( !skinfile->name )
|
||||
break;
|
||||
if( !com.stricmp( skinfile->name, filename ) )
|
||||
return skinfile;
|
||||
}
|
||||
|
||||
if( i == MAX_SKINFILES )
|
||||
{
|
||||
MsgDev( D_ERROR, "R_SkinFile_Load: Skin files limit exceeded\n" );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if((buffer = FS_LoadFile( filename, NULL )) == NULL )
|
||||
{
|
||||
MsgDev( D_WARN, "R_SkinFile_Load: Failed to load %s\n", name );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
skinfile = &r_skinfiles[i];
|
||||
skinfile->name = SkinFile_CopyString( filename );
|
||||
|
||||
skinfile->numpairs = SkinFile_ParseBuffer( buffer, NULL );
|
||||
if( skinfile->numpairs )
|
||||
{
|
||||
skinfile->pairs = Mem_Alloc( r_skinsPool, skinfile->numpairs * sizeof( mesh_shader_pair_t ) );
|
||||
SkinFile_ParseBuffer( buffer, skinfile->pairs );
|
||||
}
|
||||
else
|
||||
{
|
||||
MsgDev( D_WARN, "R_SkinFile_Load: no mesh/shader pairs in %s\n", name );
|
||||
}
|
||||
|
||||
Mem_Free( buffer );
|
||||
|
||||
return skinfile;
|
||||
}
|
||||
|
||||
/*
|
||||
================
|
||||
R_ShutdownSkinFiles
|
||||
================
|
||||
*/
|
||||
void R_ShutdownSkinFiles( void )
|
||||
{
|
||||
int i;
|
||||
skinfile_t *skinfile;
|
||||
|
||||
if( !r_skinsPool )
|
||||
return;
|
||||
|
||||
for( i = 0, skinfile = r_skinfiles; i < MAX_SKINFILES; i++, skinfile++ )
|
||||
{
|
||||
if( !skinfile->name )
|
||||
break;
|
||||
|
||||
if( skinfile->numpairs )
|
||||
SkinFile_FreeSkinFile( skinfile );
|
||||
|
||||
Mem_Free( skinfile->name );
|
||||
}
|
||||
|
||||
Mem_FreePool( &r_skinsPool );
|
||||
}
|
|
@ -97,6 +97,34 @@ void R_StudioShutdown( void )
|
|||
MISC STUDIO UTILS
|
||||
====================
|
||||
*/
|
||||
/*
|
||||
====================
|
||||
StudioSetupRender
|
||||
|
||||
====================
|
||||
*/
|
||||
static void R_StudioSetupRender( ref_entity_t *e, ref_model_t *mod )
|
||||
{
|
||||
mstudiomodel_t *m_pRefModel = (mstudiomodel_t *)mod->extradata;
|
||||
|
||||
// set global pointers
|
||||
m_pStudioHeader = m_pRefModel->phdr;
|
||||
m_pTextureHeader = m_pRefModel->thdr;
|
||||
|
||||
// set intermediate vertex buffers
|
||||
m_pvlightvalues = &g_lightvalues[0];
|
||||
|
||||
Com_Assert( e->extradata == NULL );
|
||||
|
||||
// set cached bones
|
||||
m_pbonestransform = ((studiovars_t *)e->extradata)->bonestransform;
|
||||
|
||||
// misc info
|
||||
if( r_studio_lerping->integer )
|
||||
m_fDoInterp = (e->flags & EF_NOINTERP) ? false : true;
|
||||
else m_fDoInterp = false;
|
||||
}
|
||||
|
||||
// extract texture filename from modelname
|
||||
char *R_ExtName( ref_model_t *mod )
|
||||
{
|
||||
|
@ -125,8 +153,8 @@ void R_StudioModelBBox( ref_entity_t *e, vec3_t mins, vec3_t maxs )
|
|||
{
|
||||
dstudiohdr_t *hdr;
|
||||
|
||||
if( !e || !e->model || !e->model->extradata )
|
||||
return;
|
||||
if( !e->model ) return;
|
||||
R_StudioSetupRender( e, e->model );
|
||||
|
||||
hdr = ((mstudiomodel_t *)e->model->extradata)->phdr;
|
||||
if( !hdr ) return;
|
||||
|
@ -1223,34 +1251,6 @@ bool R_StudioComputeBBox( vec3_t bbox[8] )
|
|||
return true;
|
||||
}
|
||||
|
||||
/*
|
||||
====================
|
||||
StudioSetupRender
|
||||
|
||||
====================
|
||||
*/
|
||||
static void R_StudioSetupRender( ref_entity_t *e, ref_model_t *mod )
|
||||
{
|
||||
mstudiomodel_t *m_pRefModel = (mstudiomodel_t *)mod->extradata;
|
||||
|
||||
// set global pointers
|
||||
m_pStudioHeader = m_pRefModel->phdr;
|
||||
m_pTextureHeader = m_pRefModel->thdr;
|
||||
|
||||
// set intermediate vertex buffers
|
||||
m_pvlightvalues = &g_lightvalues[0];
|
||||
|
||||
Com_Assert( e->extradata == NULL );
|
||||
|
||||
// set cached bones
|
||||
m_pbonestransform = ((studiovars_t *)e->extradata)->bonestransform;
|
||||
|
||||
// misc info
|
||||
if( r_studio_lerping->integer )
|
||||
m_fDoInterp = (e->flags & EF_NOINTERP) ? false : true;
|
||||
else m_fDoInterp = false;
|
||||
}
|
||||
|
||||
/*
|
||||
====================
|
||||
StudioSetupSubModel
|
||||
|
@ -1490,6 +1490,7 @@ void R_StudioDrawMesh( const meshbuffer_t *mb, short *ptricmds, float s, float t
|
|||
|
||||
av = m_pxformverts[ptricmds[0]]; // verts
|
||||
Vector4Set( inVertsArray[r_backacc.numVerts], av[0], av[1], av[2], 1.0f );
|
||||
r_backacc.c_totalVerts++; // r_speeds issues
|
||||
r_backacc.numVerts++;
|
||||
}
|
||||
}
|
||||
|
@ -1995,6 +1996,7 @@ void R_StudioDrawPoints( const meshbuffer_t *mb, ref_entity_t *e )
|
|||
static int studio_framecount = 0;
|
||||
bool doTransform = false;
|
||||
bool doBonesSetup = false;
|
||||
bool doForceTransform = false;
|
||||
|
||||
modelnum = (infokey & 0xFF);
|
||||
meshnum = ((infokey & 0xFF00)>>8);
|
||||
|
@ -2014,11 +2016,7 @@ void R_StudioDrawPoints( const meshbuffer_t *mb, ref_entity_t *e )
|
|||
return; // nothing to draw
|
||||
|
||||
if( mb->modhandle != old_model || old_entity != RI.currententity )
|
||||
{
|
||||
if( mb->modhandle != old_model )
|
||||
Mem_Set( g_cachestate, 0, sizeof( g_cachestate )); // model has changed - clear the cache
|
||||
doBonesSetup = doTransform = true;
|
||||
}
|
||||
|
||||
if( modelnum != old_submodel )
|
||||
{
|
||||
|
@ -2034,6 +2032,7 @@ void R_StudioDrawPoints( const meshbuffer_t *mb, ref_entity_t *e )
|
|||
{
|
||||
R_StudioSetupRender( e, Mod_ForHandle( mb->modhandle ));
|
||||
R_StudioMergeBones( e, Mod_ForHandle( mb->modhandle ));
|
||||
doForceTransform = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -2056,12 +2055,12 @@ void R_StudioDrawPoints( const meshbuffer_t *mb, ref_entity_t *e )
|
|||
s = 1.0f / (float)ptexture[pskinref[pmesh->skinref]].width;
|
||||
t = 1.0f / (float)ptexture[pskinref[pmesh->skinref]].height;
|
||||
flags = ptexture[pskinref[pmesh->skinref]].flags;
|
||||
/*
|
||||
#if 0
|
||||
Msg( "StudioDrawPoints( entity %i, model %s, doBonesSetup %s, doTransform %s, skin %s, submodel %i, mesh %i\n",
|
||||
e - r_entities, m_pStudioHeader->name, doBonesSetup ? "true" : "false", doTransform ? "true" : "false",
|
||||
ptexture[pskinref[((dstudiomesh_t *)((byte *)m_pStudioHeader + m_pSubModel->meshindex) + meshnum)->skinref]].name,
|
||||
modelnum, meshnum );
|
||||
*/
|
||||
#endif
|
||||
// detect mesh features
|
||||
features = MF_NONBATCHED | shader->features;
|
||||
if( RI.params & RP_SHADOWMAPVIEW )
|
||||
|
@ -2080,16 +2079,41 @@ void R_StudioDrawPoints( const meshbuffer_t *mb, ref_entity_t *e )
|
|||
|
||||
if( doTransform )
|
||||
{
|
||||
studiovars_t *studio = (studiovars_t *)e->extradata;
|
||||
|
||||
Com_Assert( studio == NULL );
|
||||
|
||||
pvertbone = ((byte *)m_pStudioHeader + m_pSubModel->vertinfoindex);
|
||||
pnormbone = ((byte *)m_pStudioHeader + m_pSubModel->norminfoindex);
|
||||
|
||||
pstudioverts = (vec3_t *)((byte *)m_pStudioHeader + m_pSubModel->vertindex);
|
||||
pstudionorms = (vec3_t *)((byte *)m_pStudioHeader + m_pSubModel->normindex);
|
||||
|
||||
m_pxformverts = g_xformverts[modelnum];
|
||||
m_pxformnorms = g_xformnorms[modelnum];
|
||||
// initialize vertex cache
|
||||
studio->num_models = m_pStudioHeader->numbodyparts;
|
||||
|
||||
if( !g_cachestate[modelnum] )
|
||||
if( !studio->mesh[modelnum] || studio->mesh[modelnum]->numverts != m_pSubModel->numverts || studio->mesh[modelnum]->numnorms != m_pSubModel->numnorms )
|
||||
{
|
||||
if( !studio->mesh[modelnum] )
|
||||
studio->mesh[modelnum] = Mem_Alloc( studiopool, sizeof( studioverts_t ));
|
||||
if( studio->mesh[modelnum]->numverts != m_pSubModel->numverts )
|
||||
{
|
||||
studio->mesh[modelnum]->verts = Mem_Realloc( studiopool, studio->mesh[modelnum]->verts, sizeof( vec3_t ) * m_pSubModel->numverts );
|
||||
studio->mesh[modelnum]->numverts = m_pSubModel->numverts;
|
||||
Msg( "realloc verts()\n" );
|
||||
}
|
||||
if( studio->mesh[modelnum]->numnorms != m_pSubModel->numnorms )
|
||||
{
|
||||
studio->mesh[modelnum]->norms = Mem_Realloc( studiopool, studio->mesh[modelnum]->norms, sizeof( vec3_t ) * m_pSubModel->numnorms );
|
||||
studio->mesh[modelnum]->numnorms = m_pSubModel->numnorms;
|
||||
Msg( "realloc norms()\n" );
|
||||
}
|
||||
}
|
||||
|
||||
m_pxformverts = studio->mesh[modelnum]->verts;
|
||||
m_pxformnorms = studio->mesh[modelnum]->norms;
|
||||
|
||||
if( studio->mesh[modelnum]->m_nCachedFrame != r_framecount || doForceTransform )
|
||||
{
|
||||
dstudiomesh_t *pmesh = (dstudiomesh_t *)((byte *)m_pStudioHeader + m_pSubModel->meshindex);
|
||||
float *lv = (float *)g_lightvalues;
|
||||
|
@ -2097,8 +2121,10 @@ void R_StudioDrawPoints( const meshbuffer_t *mb, ref_entity_t *e )
|
|||
for( i = 0; i < m_pSubModel->numverts; i++ )
|
||||
{
|
||||
Matrix4x4_VectorTransform( m_pbonestransform[pvertbone[i]], pstudioverts[i], m_pxformverts[i] );
|
||||
if(!( features & MF_NORMALS )) continue;
|
||||
Matrix4x4_VectorIRotate( m_pbonestransform[pvertbone[i]], pstudionorms[i], m_pxformnorms[i] );
|
||||
}
|
||||
for( i = 0; ( i < m_pSubModel->numnorms ) && ( features & MF_NORMALS ); i++ )
|
||||
{
|
||||
Matrix4x4_VectorRotate( m_pbonestransform[pnormbone[i]], pstudionorms[i], m_pxformnorms[i] );
|
||||
}
|
||||
for( i = 0; i < m_pSubModel->nummesh; i++ )
|
||||
{
|
||||
|
@ -2113,7 +2139,7 @@ void R_StudioDrawPoints( const meshbuffer_t *mb, ref_entity_t *e )
|
|||
R_StudioSetupChrome( g_chrome[(float (*)[3])lv - g_lightvalues], *pnormbone, (float *)pstudionorms );
|
||||
}
|
||||
}
|
||||
g_cachestate[modelnum] = true;
|
||||
studio->mesh[modelnum]->m_nCachedFrame = r_framecount;
|
||||
}
|
||||
}
|
||||
R_StudioDrawMesh( mb, ptricmds, s, t, features, flags );
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -6,13 +6,13 @@
|
|||
--------------------Configuration: render - Win32 Release--------------------
|
||||
</h3>
|
||||
<h3>Command Lines</h3>
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2CB1.tmp" with contents
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2E75.tmp" with contents
|
||||
[
|
||||
/nologo /MD /W3 /GX /O2 /I "../public" /I "../common" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /Fo"..\temp\render\!release/" /Fd"..\temp\render\!release/" /FD /c
|
||||
"D:\Xash3D\src_main\render\r_studio.c"
|
||||
]
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2CB1.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2CB2.tmp" with contents
|
||||
Creating command line "cl.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2E75.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2E76.tmp" with contents
|
||||
[
|
||||
msvcrt.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /pdb:none /machine:I386 /nodefaultlib:"libc.lib" /out:"..\temp\render\!release/render.dll" /implib:"..\temp\render\!release/render.lib" /libpath:"../public/libs/"
|
||||
"\Xash3D\src_main\temp\render\!release\cin.obj"
|
||||
|
@ -39,13 +39,13 @@ msvcrt.lib user32.lib gdi32.lib /nologo /subsystem:windows /dll /pdb:none /machi
|
|||
"\Xash3D\src_main\temp\render\!release\r_studio.obj"
|
||||
"\Xash3D\src_main\temp\render\!release\r_surf.obj"
|
||||
]
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2CB2.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2CB3.bat" with contents
|
||||
Creating command line "link.exe @C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2E76.tmp"
|
||||
Creating temporary file "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2E77.bat" with contents
|
||||
[
|
||||
@echo off
|
||||
copy \Xash3D\src_main\temp\render\!release\render.dll "D:\Xash3D\bin\render.dll"
|
||||
]
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2CB3.bat"
|
||||
Creating command line "C:\DOCUME~1\MIKE~1.MIK\LOCALS~1\Temp\RSP2E77.bat"
|
||||
Compiling...
|
||||
r_studio.c
|
||||
Linking...
|
||||
|
|
Reference in New Issue