From 4b080c5906fdb1f7ee4e7fe5fdf2375dfcdf5ff4 Mon Sep 17 00:00:00 2001 From: tma Date: Fri, 23 Sep 2005 17:08:25 +0000 Subject: * Applied Thilo Schulz's MDR patch git-svn-id: svn://svn.icculus.org/quake3/trunk@100 edf5b092-35ff-0310-97b2-ce42778d08ea --- code/renderer/tr_local.h | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'code/renderer/tr_local.h') diff --git a/code/renderer/tr_local.h b/code/renderer/tr_local.h index fc1b464..e29feba 100644 --- a/code/renderer/tr_local.h +++ b/code/renderer/tr_local.h @@ -525,6 +525,9 @@ typedef enum { SF_POLY, SF_MD3, SF_MD4, +#ifdef RAVENMD4 + SF_MDR, +#endif SF_FLARE, SF_ENTITY, // beams, rails, lightning, etc that can be determined by entity SF_DISPLAY_LIST, @@ -737,7 +740,10 @@ typedef enum { MOD_BAD, MOD_BRUSH, MOD_MESH, - MOD_MD4 + MOD_MD4, +#ifdef RAVENMD4 + MOD_MDR +#endif } modtype_t; typedef struct model_s { @@ -748,7 +754,7 @@ typedef struct model_s { int dataSize; // just for listing purposes bmodel_t *bmodel; // only if type == MOD_BRUSH md3Header_t *md3[MD3_MAX_LODS]; // only if type == MOD_MESH - md4Header_t *md4; // only if type == MOD_MD4 + void *md4; // only if type == (MOD_MD4 | MOD_MDR) int numLods; } model_t; @@ -1205,6 +1211,8 @@ int R_SumOfUsedImages( void ); void R_InitSkins( void ); skin_t *R_GetSkinByHandle( qhandle_t hSkin ); +int R_ComputeLOD( trRefEntity_t *ent ); + // // tr_shader.c @@ -1421,6 +1429,27 @@ void RE_AddLightToScene( const vec3_t org, float intensity, float r, float g, fl void RE_AddAdditiveLightToScene( const vec3_t org, float intensity, float r, float g, float b ); void RE_RenderScene( const refdef_t *fd ); +#ifdef RAVENMD4 +/* +============================================================= + +UNCOMPRESSING BONES + +============================================================= +*/ + +#define MC_BITS_X (16) +#define MC_BITS_Y (16) +#define MC_BITS_Z (16) +#define MC_BITS_VECT (16) + +#define MC_SCALE_X (1.0f/64) +#define MC_SCALE_Y (1.0f/64) +#define MC_SCALE_Z (1.0f/64) + +void MC_UnCompress(float mat[3][4],const unsigned char * comp); +#endif + /* ============================================================= @@ -1429,9 +1458,13 @@ ANIMATED MODELS ============================================================= */ -void R_MakeAnimModel( model_t *model ); +// void R_MakeAnimModel( model_t *model ); haven't seen this one really, so not needed I guess. void R_AddAnimSurfaces( trRefEntity_t *ent ); void RB_SurfaceAnim( md4Surface_t *surfType ); +#ifdef RAVENMD4 +void R_MDRAddAnimSurfaces( trRefEntity_t *ent ); +void RB_MDRSurfaceAnim( md4Surface_t *surface ); +#endif /* ============================================================= -- cgit v1.2.3