models: prepare command compress to share logic

This commit is contained in:
Denis Pauk 2024-03-10 13:56:33 +02:00
parent 28bb559e52
commit 7bce5d75fb
2 changed files with 9 additions and 7 deletions

View file

@ -767,7 +767,7 @@ Mod_LoadModel_MDL(const char *mod_name, const void *buffer, int modfilelen,
/* glcmds generation */ /* glcmds generation */
static int static int
md2_strip_length(int starttri, int startv, dtriangle_t *triangles, int num_tris, Mod_LoadCmdStripLength(int starttri, int startv, dtriangle_t *triangles, int num_tris,
byte *used, int *strip_xyz, int *strip_st, int *strip_tris) byte *used, int *strip_xyz, int *strip_st, int *strip_tris)
{ {
int m1, m2; int m1, m2;
@ -854,7 +854,7 @@ done:
} }
static int static int
md2_fan_length(int starttri, int startv, dtriangle_t *triangles, int num_tris, Mod_LoadCmdFanLength(int starttri, int startv, dtriangle_t *triangles, int num_tris,
byte *used, int *strip_xyz, int *strip_st, int *strip_tris) byte *used, int *strip_xyz, int *strip_st, int *strip_tris)
{ {
int m1, m2; int m1, m2;
@ -933,8 +933,8 @@ done:
return stripcount; return stripcount;
} }
static int int
md2_build_glcmds(const dstvert_t *texcoords, dtriangle_t *triangles, int num_tris, Mod_LoadCmdCompress(const dstvert_t *texcoords, dtriangle_t *triangles, int num_tris,
int *commands, int skinwidth, int skinheight) int *commands, int skinwidth, int skinheight)
{ {
int i, j, numcommands = 0, startv, len, bestlen, type, besttype = -1; int i, j, numcommands = 0, startv, len, bestlen, type, besttype = -1;
@ -965,12 +965,12 @@ md2_build_glcmds(const dstvert_t *texcoords, dtriangle_t *triangles, int num_tri
{ {
if (type == 1) if (type == 1)
{ {
len = md2_strip_length(i, startv, triangles, num_tris, len = Mod_LoadCmdStripLength(i, startv, triangles, num_tris,
used, strip_xyz, strip_st, strip_tris); used, strip_xyz, strip_st, strip_tris);
} }
else else
{ {
len = md2_fan_length(i, startv, triangles, num_tris, len = Mod_LoadCmdFanLength(i, startv, triangles, num_tris,
used, strip_xyz, strip_st, strip_tris); used, strip_xyz, strip_st, strip_tris);
} }
@ -1206,7 +1206,7 @@ Mod_LoadModel_MD3(const char *mod_name, const void *buffer, int modfilelen,
} }
/* write glcmds */ /* write glcmds */
mesh_nodes[i].num = md2_build_glcmds( mesh_nodes[i].num = Mod_LoadCmdCompress(
(dstvert_t*)((byte *)pheader + pheader->ofs_st), (dstvert_t*)((byte *)pheader + pheader->ofs_st),
(dtriangle_t*)((byte *)pheader + pheader->ofs_tris) + num_tris, (dtriangle_t*)((byte *)pheader + pheader->ofs_tris) + num_tris,
LittleLong(md3_mesh->num_tris), LittleLong(md3_mesh->num_tris),

View file

@ -40,5 +40,7 @@ extern void PrepareFrameVertex(dmdx_vert_t *vertexArray, int num_verts,
daliasxframe_t *frame_out); daliasxframe_t *frame_out);
extern void *Mod_LoadModel_MD5(const char *mod_name, const void *buffer, extern void *Mod_LoadModel_MD5(const char *mod_name, const void *buffer,
int modfilelen, struct image_s ***skins, int *numskins, modtype_t *type); int modfilelen, struct image_s ***skins, int *numskins, modtype_t *type);
extern int Mod_LoadCmdCompress(const dstvert_t *texcoords, dtriangle_t *triangles, int num_tris,
int *commands, int skinwidth, int skinheight);
#endif /* SRC_CLIENT_REFRESH_FILES_MODELS_H_ */ #endif /* SRC_CLIENT_REFRESH_FILES_MODELS_H_ */