47 "md2",
"md3",
"obj",
nullptr
59 Com_Printf(
"Type | #Slot | #Tris | #Meshes | Filename\n");
278 if (
name[0] ==
'*') {
279 i = atoi(
name + 1) - 1;
292#define MEM_TAG_STATIC_MODELS 1
315 for (
int k = 0; k < mesh->
num_skins; k++) {
366 Com_Printf(
"R_LoadActorSkinsFromModel: No default skin found for model \"%s\"\n", outMesh->
name);
371 modelSkin->
skin = defaultSkin;
377 Com_Printf(
"R_LoadActorSkinsFromModel: Skin %s_%s not found, defaulting to: %s\n",
378 defaultSkin->
name, skin, defaultSkin->
name);
379 modelSkin->
skin = defaultSkin;
memPool_t * vid_modelPool
memPool_t * vid_lightPool
void Com_Error(int code, const char *fmt,...)
void Com_Printf(const char *const fmt,...)
int FS_CheckFile(const char *fmt,...)
Just returns the filelength and -1 if the file wasn't found.
int FS_LoadFile(const char *path, byte **buffer)
Filenames are relative to the quake search path.
void FS_FreeFile(void *buffer)
#define Mem_FreePool(pool)
#define Mem_PoolAllocTypeN(type, n, pool)
#define Mem_ChangeTag(pool, tagFrom, tagTo)
#define Mem_FreeTag(pool, tagNum)
QGL_EXTERN GLuint GLsizei GLsizei GLint GLenum GLchar * name
local graphics definitions
static char * r_actorSkinNames[MAX_ACTORSKINNAME]
bool R_ModelExists(const char *name)
static const char * R_GetActorSkin(int id)
void R_LoadActorSkinsFromModel(mAliasMesh_t *outMesh, image_t *defaultSkin)
Load actor skins from a default skin to a a mesh.
model_t * R_FindModel(const char *name)
Tries to load a model.
void R_ModModellist_f(void)
Prints all loaded models.
int R_ModAllocateActorSkin(const char *name)
Register an actorskin name.
void R_ShutdownModels(bool complete)
Frees the model pool.
void R_SwitchModelMemPoolTag(void)
After all static models are loaded, switch the pool tag for these models to not free them everytime R...
static void R_LoadModelAsync(model_t *mod, byte *buf, int modfilelen)
static int r_numActorSkinName
bool R_UseActorSkin(void)
model_t * R_GetModel(const char *name)
Get a model for the given name already loaded.
model_t r_modelsInline[MAX_MOD_KNOWN]
static bool R_LoadModel(model_t *mod, const char *filename)
Loads in a model for the given name.
model_t * r_mapTiles[MAX_MAPTILES]
The world model(s).
static char const *const mod_extensions[]
all supported model formats
#define MEM_TAG_STATIC_MODELS
static model_t r_models[MAX_MOD_KNOWN]
model_t * R_AllocModelSlot(void)
static int r_numModelsStatic
image_t * R_AliasModelGetSkin(const char *modelFileName, const char *skin)
#define MAX_ACTORSKINNAME
void R_ModLoadAnims(mAliasModel_t *mod, const char *animname)
void R_ModLoadAliasMD2Model(model_t *mod, byte *buffer, int bufSize, bool loadNormals)
Load MD2 models from file.
void R_ModLoadAliasMD3Model(model_t *mod, byte *buffer, int bufSize)
Load MD3 models from file.
void R_LoadObjModel(model_t *mod, byte *buffer, int bufSize)
#define Q_strcasecmp(a, b)
void Com_StripExtension(const char *in, char *out, const size_t size)
Removes the file extension from a filename.
void Q_strncpyz(char *dest, const char *src, size_t destsize)
Safe strncpy that ensures a trailing zero.
void Com_DefaultExtension(char *path, size_t len, const char *extension)
Sets a default extension if there is none.
const char * Com_GetExtension(const char *path)
bool Com_sprintf(char *dest, size_t size, const char *fmt,...)
copies formatted string with buffer-size checking
const char * va(const char *format,...)
does a varargs printf into a temp buffer, so I don't need to have varargs versions of all text functi...
char name[MODEL_MAX_PATH]
char name[MODEL_MAX_PATH]
unsigned int tangent_buffer
unsigned int normal_buffer
unsigned int index_buffer
unsigned int vertex_buffer
unsigned int texcoord_buffer
unsigned int lmtexcoord_buffer