}
overridetagnameset_t;
-typedef struct surfmeshvertexboneweight_s
-{
- unsigned int vertexindex;
- unsigned int boneindex;
- float origin[3];
- float weight;
-}
-surfmeshvertexboneweight_t;
-
// used for mesh lists in q1bsp/q3bsp map models
// (the surfaces reference portions of these meshes)
typedef struct surfmesh_s
// morph blending, these are zero if model is skeletal or static
int num_morphframes;
float *data_morphvertex3f;
- // skeletal blending, these are zero if model is morph or static
- int num_vertexboneweights;
- surfmeshvertexboneweight_t *data_vertexboneweights;
+ // skeletal blending, these are NULL if model is morph or static
+ int *data_vertexweightindex4i;
+ float *data_vertexweightinfluence4f;
}
surfmesh_t;
typedef enum texturelayertype_e
{
TEXTURELAYERTYPE_INVALID,
- TEXTURELAYERTYPE_LITTEXTURE_COMBINE,
- TEXTURELAYERTYPE_LITTEXTURE_MULTIPASS,
- TEXTURELAYERTYPE_LITTEXTURE_VERTEX,
+ TEXTURELAYERTYPE_LITTEXTURE,
TEXTURELAYERTYPE_TEXTURE,
TEXTURELAYERTYPE_FOG,
}
float specularscale;
float specularpower;
+ // from q3 shaders
+ int customblendfunc[2];
+
int currentnumlayers;
texturelayer_t currentlayers[16];
// q3bsp
char name[64];
- char firstpasstexturename[64]; // used only during loading
int surfaceflags;
int supercontents;
int surfaceparms;
aliasbone_t *data_bones;
int num_poses;
float *data_poses;
+ float *data_basebonepose;
+ float *data_baseboneposeinverse;
// textures of this model
int num_textures;
texture_t *data_textures;
// alias models
struct frameblend_s;
void Mod_AliasInit(void);
-void Mod_Alias_GetMesh_Vertex3f(const model_t *model, const struct frameblend_s *frameblend, float *out3f);
+void Mod_Alias_GetMesh_Vertices(const model_t *model, const struct frameblend_s *frameblend, float *vertex3f, float *normal3f, float *svector3f, float *tvector3f);
int Mod_Alias_GetTagMatrix(const model_t *model, int poseframe, int tagindex, matrix4x4_t *outmatrix);
int Mod_Alias_GetTagIndexForName(const model_t *model, unsigned int skin, const char *tagname);