if (!model->surfmesh.num_vertices)
return;
+ if (!model->num_bones)
+ {
+ if (vertex3f) memcpy(vertex3f, model->surfmesh.data_vertex3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ if (normal3f) memcpy(normal3f, model->surfmesh.data_normal3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ if (svector3f) memcpy(svector3f, model->surfmesh.data_svector3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ if (tvector3f) memcpy(tvector3f, model->surfmesh.data_tvector3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ return;
+ }
+
//unsigned long long ts = rdtsc();
bonepose = (float12_t *) Mod_Skeletal_AnimateVertices_AllocBuffers(sizeof(float12_t) * (model->num_bones*2 + model->surfmesh.num_blends));
boneposerelative = bonepose + model->num_bones;
if (!model->surfmesh.num_vertices)
return;
+ if (!model->num_bones)
+ {
+ if (vertex3f) memcpy(vertex3f, model->surfmesh.data_vertex3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ if (normal3f) memcpy(normal3f, model->surfmesh.data_normal3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ if (svector3f) memcpy(svector3f, model->surfmesh.data_svector3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ if (tvector3f) memcpy(tvector3f, model->surfmesh.data_tvector3f, model->surfmesh.num_vertices*sizeof(float[3]));
+ return;
+ }
+
num_vertices_minus_one = model->surfmesh.num_vertices - 1;
//unsigned long long ts = rdtsc();
float mod_md3_sin[320];
-static size_t Mod_Skeltal_AnimateVertices_maxbonepose = 0;
-static void *Mod_Skeltal_AnimateVertices_bonepose = NULL;
+static size_t Mod_Skeletal_AnimateVertices_maxbonepose = 0;
+static void *Mod_Skeletal_AnimateVertices_bonepose = NULL;
void Mod_Skeletal_FreeBuffers(void)
{
- if(Mod_Skeltal_AnimateVertices_bonepose)
- Mem_Free(Mod_Skeltal_AnimateVertices_bonepose);
- Mod_Skeltal_AnimateVertices_maxbonepose = 0;
- Mod_Skeltal_AnimateVertices_bonepose = NULL;
+ if(Mod_Skeletal_AnimateVertices_bonepose)
+ Mem_Free(Mod_Skeletal_AnimateVertices_bonepose);
+ Mod_Skeletal_AnimateVertices_maxbonepose = 0;
+ Mod_Skeletal_AnimateVertices_bonepose = NULL;
}
void *Mod_Skeletal_AnimateVertices_AllocBuffers(size_t nbytes)
{
- if(Mod_Skeltal_AnimateVertices_maxbonepose < nbytes)
+ if(Mod_Skeletal_AnimateVertices_maxbonepose < nbytes)
{
- if(Mod_Skeltal_AnimateVertices_bonepose)
- Mem_Free(Mod_Skeltal_AnimateVertices_bonepose);
- Mod_Skeltal_AnimateVertices_bonepose = Z_Malloc(nbytes);
- Mod_Skeltal_AnimateVertices_maxbonepose = nbytes;
+ if(Mod_Skeletal_AnimateVertices_bonepose)
+ Mem_Free(Mod_Skeletal_AnimateVertices_bonepose);
+ Mod_Skeletal_AnimateVertices_bonepose = Z_Malloc(nbytes);
+ Mod_Skeletal_AnimateVertices_maxbonepose = nbytes;
}
- return Mod_Skeltal_AnimateVertices_bonepose;
+ return Mod_Skeletal_AnimateVertices_bonepose;
}
void Mod_Skeletal_AnimateVertices(const dp_model_t * RESTRICT model, const frameblend_t * RESTRICT frameblend, const skeleton_t *skeleton, float * RESTRICT vertex3f, float * RESTRICT normal3f, float * RESTRICT svector3f, float * RESTRICT tvector3f)