diff options
author | zakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-08-27 02:24:00 +0000 |
---|---|---|
committer | zakk <zakk@edf5b092-35ff-0310-97b2-ce42778d08ea> | 2005-08-27 02:24:00 +0000 |
commit | 2cbb0a8b22175da7a5b9b15f120f24def39c9abb (patch) | |
tree | 0a7591016e4770b5f9fd766c6c3c99c3820498bc /code/renderer | |
parent | 6bf20c78f5b69d40bcc4931df93d29198435ab67 (diff) | |
download | ioquake3-aero-2cbb0a8b22175da7a5b9b15f120f24def39c9abb.tar.gz ioquake3-aero-2cbb0a8b22175da7a5b9b15f120f24def39c9abb.zip |
Ludwig's 1st diff: Some 64bit fixes for x86_64. Also fixes Makefile build.
git-svn-id: svn://svn.icculus.org/quake3/trunk@7 edf5b092-35ff-0310-97b2-ce42778d08ea
Diffstat (limited to 'code/renderer')
-rwxr-xr-x | code/renderer/tr_animation.c | 2 | ||||
-rwxr-xr-x | code/renderer/tr_bsp.c | 2 | ||||
-rwxr-xr-x | code/renderer/tr_main.c | 12 | ||||
-rwxr-xr-x | code/renderer/tr_model.c | 2 | ||||
-rwxr-xr-x | code/renderer/tr_shader.c | 1 |
5 files changed, 15 insertions, 4 deletions
diff --git a/code/renderer/tr_animation.c b/code/renderer/tr_animation.c index fe06097..61b9057 100755 --- a/code/renderer/tr_animation.c +++ b/code/renderer/tr_animation.c @@ -87,7 +87,7 @@ void RB_SurfaceAnim( md4Surface_t *surface ) { } header = (md4Header_t *)((byte *)surface + surface->ofsHeader); - frameSize = (int)( &((md4Frame_t *)0)->bones[ header->numBones ] ); + frameSize = (size_t)( &((md4Frame_t *)0)->bones[ header->numBones ] ); frame = (md4Frame_t *)((byte *)header + header->ofsFrames + backEnd.currentEntity->e.frame * frameSize ); diff --git a/code/renderer/tr_bsp.c b/code/renderer/tr_bsp.c index 1f5db42..f9d8829 100755 --- a/code/renderer/tr_bsp.c +++ b/code/renderer/tr_bsp.c @@ -328,7 +328,7 @@ static void ParseFace( dsurface_t *ds, drawVert_t *verts, msurface_t *surf, int numIndexes = LittleLong( ds->numIndexes ); // create the srfSurfaceFace_t - sfaceSize = ( int ) &((srfSurfaceFace_t *)0)->points[numPoints]; + sfaceSize = ( size_t ) &((srfSurfaceFace_t *)0)->points[numPoints]; ofsIndexes = sfaceSize; sfaceSize += sizeof( int ) * numIndexes; diff --git a/code/renderer/tr_main.c b/code/renderer/tr_main.c index 1c92579..54ae106 100755 --- a/code/renderer/tr_main.c +++ b/code/renderer/tr_main.c @@ -23,6 +23,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA #include "tr_local.h" +#include <string.h> // memcpy + trGlobals_t tr; static float s_flipMatrix[16] = { @@ -1003,7 +1005,13 @@ qsort replacement ================= */ -#define SWAP_DRAW_SURF(a,b) temp=((int *)a)[0];((int *)a)[0]=((int *)b)[0];((int *)b)[0]=temp; temp=((int *)a)[1];((int *)a)[1]=((int *)b)[1];((int *)b)[1]=temp; +static inline void SWAP_DRAW_SURF(drawSurf_t* a, drawSurf_t* b) +{ + drawSurf_t t; + memcpy(&t, a, sizeof(t)); + memcpy(a, b, sizeof(t)); + memcpy(b, &t, sizeof(t)); +} /* this parameter defines the cutoff between using quick sort and insertion sort for arrays; arrays with lengths shorter or equal to the @@ -1046,9 +1054,11 @@ void qsortFast ( int stkptr; /* stack for saving sub-array to be processed */ int temp; +#if 0 if ( sizeof(drawSurf_t) != 8 ) { ri.Error( ERR_DROP, "change SWAP_DRAW_SURF macro" ); } +#endif /* Note: the number of stack entries required is no more than 1 + log2(size), so 30 is sufficient for any array */ diff --git a/code/renderer/tr_model.c b/code/renderer/tr_model.c index f6fcac4..2b92917 100755 --- a/code/renderer/tr_model.c +++ b/code/renderer/tr_model.c @@ -418,7 +418,7 @@ static qboolean R_LoadMD4( model_t *mod, void *buffer, const char *mod_name ) { // we don't need to swap tags in the renderer, they aren't used // swap all the frames - frameSize = (int)( &((md4Frame_t *)0)->bones[ md4->numBones ] ); + frameSize = (size_t)( &((md4Frame_t *)0)->bones[ md4->numBones ] ); for ( i = 0 ; i < md4->numFrames ; i++, frame++) { frame = (md4Frame_t *) ( (byte *)md4 + md4->ofsFrames + i * frameSize ); frame->radius = LittleFloat( frame->radius ); diff --git a/code/renderer/tr_shader.c b/code/renderer/tr_shader.c index b554f34..4e4face 100755 --- a/code/renderer/tr_shader.c +++ b/code/renderer/tr_shader.c @@ -43,6 +43,7 @@ static char **shaderTextHashTable[MAX_SHADERTEXT_HASH]; return a hash value for the filename ================ */ +#warning TODO: check if long is ok here static long generateHashValue( const char *fname, const int size ) { int i; long hash; |