mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-11 18:50:46 +00:00
Temporarily disable the 'model thinning-out' feature intended to save memory.
It turns out that with model interpolation, out-of-bounds frame numbers may be generated with thinned out models, so disable it until I can sort out what's wrong with it. Also, minor code cleanup. git-svn-id: https://svn.eduke32.com/eduke32@2251 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
5f50c30ac2
commit
80949930bd
3 changed files with 21 additions and 15 deletions
|
@ -204,12 +204,12 @@ typedef struct
|
||||||
|
|
||||||
EXTERN mdmodel_t **models;
|
EXTERN mdmodel_t **models;
|
||||||
|
|
||||||
void updateanimation(md2model_t *m, spritetype *tspr);
|
void updateanimation(md2model_t *m, const spritetype *tspr);
|
||||||
int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf);
|
int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf);
|
||||||
void mdinit(void);
|
void mdinit(void);
|
||||||
void freeallmodels(void);
|
void freeallmodels(void);
|
||||||
void clearskins(void);
|
void clearskins(void);
|
||||||
int32_t mddraw(spritetype *tspr);
|
int32_t mddraw(const spritetype *tspr);
|
||||||
|
|
||||||
typedef struct { float xadd, yadd, zadd; int16_t angadd, flags, fov; } hudtyp;
|
typedef struct { float xadd, yadd, zadd; int16_t angadd, flags, fov; } hudtyp;
|
||||||
|
|
||||||
|
@ -221,9 +221,9 @@ EXTERN voxmodel_t *voxmodels[MAXVOXELS];
|
||||||
|
|
||||||
void voxfree(voxmodel_t *m);
|
void voxfree(voxmodel_t *m);
|
||||||
voxmodel_t *voxload(const char *filnam);
|
voxmodel_t *voxload(const char *filnam);
|
||||||
int32_t voxdraw(voxmodel_t *m, spritetype *tspr);
|
int32_t voxdraw(voxmodel_t *m, const spritetype *tspr);
|
||||||
|
|
||||||
int md3postload_polymer(md3model_t* m);
|
int md3postload_polymer(md3model_t* m);
|
||||||
int32_t md_thinoutmodel(int32_t modelid, uint8_t *usedframebitmap);
|
//int32_t md_thinoutmodel(int32_t modelid, uint8_t *usedframebitmap);
|
||||||
|
|
||||||
#endif // !_mdsprite_h_
|
#endif // !_mdsprite_h_
|
||||||
|
|
|
@ -1347,22 +1347,25 @@ static int32_t defsparser(scriptfile *script)
|
||||||
md_setmisc(lastmodelid,(float)scale,shadeoffs,(float)mzadd,flags);
|
md_setmisc(lastmodelid,(float)scale,shadeoffs,(float)mzadd,flags);
|
||||||
|
|
||||||
// thin out the loaded model by throwing away unused frames
|
// thin out the loaded model by throwing away unused frames
|
||||||
|
// FIXME: CURRENTLY DISABLED: interpolation may access frames we consider 'unused'?
|
||||||
|
# if 0
|
||||||
if (models[lastmodelid]->mdnum==3 && ((md3model_t *)models[lastmodelid])->numframes <= 1024)
|
if (models[lastmodelid]->mdnum==3 && ((md3model_t *)models[lastmodelid])->numframes <= 1024)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_MODEL_MEM
|
# ifdef DEBUG_MODEL_MEM
|
||||||
md3model_t *m = (md3model_t *)models[lastmodelid];
|
md3model_t *m = (md3model_t *)models[lastmodelid];
|
||||||
int32_t i, onumframes;
|
int32_t i, onumframes;
|
||||||
onumframes = m->numframes;
|
onumframes = m->numframes;
|
||||||
i =
|
i =
|
||||||
#endif
|
# endif
|
||||||
md_thinoutmodel(lastmodelid, usedframebitmap);
|
md_thinoutmodel(lastmodelid, usedframebitmap);
|
||||||
#ifdef DEBUG_MODEL_MEM
|
# ifdef DEBUG_MODEL_MEM
|
||||||
if (i>=0 && i<onumframes)
|
if (i>=0 && i<onumframes)
|
||||||
initprintf("used %d/%d frames: %s\n", i, onumframes, modelfn);
|
initprintf("used %d/%d frames: %s\n", i, onumframes, modelfn);
|
||||||
else if (i<0)
|
else if (i<0)
|
||||||
initprintf("md_thinoutmodel returned %d: %s\n", i, modelfn);
|
initprintf("md_thinoutmodel returned %d: %s\n", i, modelfn);
|
||||||
#endif
|
# endif
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
|
|
||||||
if (glrendmode==4)
|
if (glrendmode==4)
|
||||||
md3postload_polymer((md3model_t *)models[lastmodelid]);
|
md3postload_polymer((md3model_t *)models[lastmodelid]);
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
voxmodel_t *voxmodels[MAXVOXELS];
|
voxmodel_t *voxmodels[MAXVOXELS];
|
||||||
int32_t curextra=MAXTILES;
|
static int32_t curextra=MAXTILES;
|
||||||
// nedpool *model_data_pool;
|
// nedpool *model_data_pool;
|
||||||
// #define MODEL_POOL_SIZE 20971520
|
// #define MODEL_POOL_SIZE 20971520
|
||||||
#define model_data_pool (nedpool *) 0 // take it out of the system pool
|
#define model_data_pool (nedpool *) 0 // take it out of the system pool
|
||||||
|
@ -74,7 +74,6 @@ static GLuint *vertvbos = NULL;
|
||||||
static GLuint *indexvbos = NULL;
|
static GLuint *indexvbos = NULL;
|
||||||
|
|
||||||
static mdmodel_t *mdload(const char *);
|
static mdmodel_t *mdload(const char *);
|
||||||
int32_t mddraw(spritetype *);
|
|
||||||
static void mdfree(mdmodel_t *);
|
static void mdfree(mdmodel_t *);
|
||||||
int32_t globalnoeffect=0;
|
int32_t globalnoeffect=0;
|
||||||
|
|
||||||
|
@ -323,6 +322,8 @@ int32_t md_defineanimation(int32_t modelid, const char *framestart, const char *
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
// FIXME: CURRENTLY DISABLED: interpolation may access frames we consider 'unused'?
|
||||||
int32_t md_thinoutmodel(int32_t modelid, uint8_t *usedframebitmap)
|
int32_t md_thinoutmodel(int32_t modelid, uint8_t *usedframebitmap)
|
||||||
{
|
{
|
||||||
md3model_t *m;
|
md3model_t *m;
|
||||||
|
@ -424,6 +425,7 @@ int32_t md_thinoutmodel(int32_t modelid, uint8_t *usedframebitmap)
|
||||||
////////////
|
////////////
|
||||||
return usedframes;
|
return usedframes;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int32_t md_defineskin(int32_t modelid, const char *skinfn, int32_t palnum, int32_t skinnum, int32_t surfnum, float param, float specpower, float specfactor)
|
int32_t md_defineskin(int32_t modelid, const char *skinfn, int32_t palnum, int32_t skinnum, int32_t surfnum, float param, float specpower, float specfactor)
|
||||||
{
|
{
|
||||||
|
@ -898,7 +900,7 @@ int32_t mdloadskin(md2model_t *m, int32_t number, int32_t pal, int32_t surf)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Note: even though it says md2model, it works for both md2model&md3model
|
//Note: even though it says md2model, it works for both md2model&md3model
|
||||||
void updateanimation(md2model_t *m, spritetype *tspr)
|
void updateanimation(md2model_t *m, const spritetype *tspr)
|
||||||
{
|
{
|
||||||
mdanim_t *anim;
|
mdanim_t *anim;
|
||||||
int32_t i, j, k;
|
int32_t i, j, k;
|
||||||
|
@ -1870,7 +1872,7 @@ int md3postload_polymer(md3model_t *m)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int32_t md3draw(md3model_t *m, spritetype *tspr)
|
static int32_t md3draw(md3model_t *m, const spritetype *tspr)
|
||||||
{
|
{
|
||||||
point3d fp, fp1, fp2, m0, m1, a0;
|
point3d fp, fp1, fp2, m0, m1, a0;
|
||||||
md3xyzn_t *v0, *v1;
|
md3xyzn_t *v0, *v1;
|
||||||
|
@ -1901,7 +1903,8 @@ static int32_t md3draw(md3model_t *m, spritetype *tspr)
|
||||||
m->cframe < 0 || m->cframe >= m->numframes ||
|
m->cframe < 0 || m->cframe >= m->numframes ||
|
||||||
m->nframe < 0 || m->nframe >= m->numframes)
|
m->nframe < 0 || m->nframe >= m->numframes)
|
||||||
{
|
{
|
||||||
OSD_Printf("%s: Model frame out of bounds!\n", m->head.nam);
|
OSD_Printf("%s: mdframe oob: c:%d n:%d total:%d interpol:%.02f\n",
|
||||||
|
m->head.nam, m->cframe, m->nframe, m->numframes, m->interpol);
|
||||||
if (m->interpol < 0)
|
if (m->interpol < 0)
|
||||||
m->interpol = 0;
|
m->interpol = 0;
|
||||||
if (m->interpol > 1)
|
if (m->interpol > 1)
|
||||||
|
@ -3116,7 +3119,7 @@ voxmodel_t *voxload(const char *filnam)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Draw voxel model as perfect cubes
|
//Draw voxel model as perfect cubes
|
||||||
int32_t voxdraw(voxmodel_t *m, spritetype *tspr)
|
int32_t voxdraw(voxmodel_t *m, const spritetype *tspr)
|
||||||
{
|
{
|
||||||
point3d fp, m0, a0;
|
point3d fp, m0, a0;
|
||||||
int32_t i, j, fi, xx, yy, zz;
|
int32_t i, j, fi, xx, yy, zz;
|
||||||
|
@ -3321,7 +3324,7 @@ mdmodel_t *mdload(const char *filnam)
|
||||||
return(vm);
|
return(vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t mddraw(spritetype *tspr)
|
int32_t mddraw(const spritetype *tspr)
|
||||||
{
|
{
|
||||||
mdmodel_t *vm;
|
mdmodel_t *vm;
|
||||||
int32_t i;
|
int32_t i;
|
||||||
|
|
Loading…
Reference in a new issue