FTEQW
Documentation of the FTE engine source tree.
gl_model.c File Reference

Functions

void CM_Init (void)
 
void Mod_LoadSpriteShaders (model_t *spr)
 
qboolean QDECL Mod_LoadSpriteModel (model_t *mod, void *buffer, size_t fsize)
 
qboolean QDECL Mod_LoadSprite2Model (model_t *mod, void *buffer, size_t fsize)
 
qboolean QDECL Mod_LoadQ2BrushModel (model_t *mod, void *buffer, size_t fsize)
 
model_tMod_LoadModel (model_t *mod, enum mlverbosity_e verbose)
 
qboolean QDECL Mod_LoadDoomLevel (model_t *mod, void *buffer, size_t fsize)
 
void Mod_LoadDoomSprite (model_t *mod)
 
void Mod_SortShaders (model_t *mod)
 
void Mod_LoadAliasShaders (model_t *mod)
 
void Mod_RebuildLightmaps (void)
 
void Mod_ResortShaders (void)
 
const char * Mod_GetEntitiesString (model_t *mod)
 
void Mod_SetEntitiesString (model_t *mod, const char *str, qboolean docopy)
 
void Mod_SetEntitiesStringLen (model_t *mod, const char *str, size_t strsize)
 
void Mod_ParseEntities (model_t *mod)
 
void Mod_LoadMapArchive (model_t *mod, void *archivedata, size_t archivesize)
 
void Mod_ClearAll (void)
 
qboolean Mod_PurgeModel (model_t *mod, enum mod_purge_e ptype)
 
void Mod_Purge (enum mod_purge_e ptype)
 
void Mod_SetModifier (const char *modifier)
 
void Mod_FindCubemaps_f (void)
 
void Mod_Realign_f (void)
 
void Mod_BSPX_List_f (void)
 
void Mod_BSPX_Strip_f (void)
 
void Mod_Init (qboolean initial)
 
void Mod_Shutdown (qboolean final)
 
voidMod_Extradata (model_t *mod)
 
const char * Mod_FixName (const char *modname, const char *worldname)
 
void Mod_FileWritten (const char *filename)
 
model_tMod_FindName (const char *name)
 
void Mod_TouchModel (const char *name)
 
int Mod_RegisterModelFormatText (void *module, const char *formatname, char *magictext, qboolean(QDECL *load)(model_t *mod, void *buffer, size_t fsize))
 
int Mod_RegisterModelFormatMagic (void *module, const char *formatname, qbyte *magic, size_t magicsize, qboolean(QDECL *load)(model_t *mod, void *buffer, size_t fsize))
 
void Mod_UnRegisterModelFormat (void *module, int idx)
 
void Mod_UnRegisterAllModelFormats (void *module)
 
void Mod_ModelLoaded (void *ctx, void *data, size_t a, size_t b)
 
void Mod_SubmodelLoaded (model_t *mod, int state)
 
model_tMod_ForName (const char *name, enum mlverbosity_e verbosity)
 
void Mod_NowLoadExternal (model_t *loadmodel)
 
void BuildLightMapGammaTable (float g, float c)
 
void Mod_LoadLighting (model_t *loadmodel, bspx_header_t *bspx, qbyte *mod_base, lump_t *l, qboolean interleaveddeluxe, lightmapoverrides_t *overrides, subbsp_t subbsp)
 
const char * Mod_ParseWorldspawnKey (model_t *mod, const char *key, char *buffer, size_t sizeofbuffer)
 
qboolean Mod_LoadEntitiesBlob (struct model_s *mod, const char *entdata, size_t entdatasize)
 
void Mod_LoadEntities (model_t *loadmodel, qbyte *mod_base, lump_t *l)
 
qboolean Mod_LoadVertexes (model_t *loadmodel, qbyte *mod_base, lump_t *l)
 
qboolean Mod_LoadVertexNormals (model_t *loadmodel, bspx_header_t *bspx, qbyte *mod_base, lump_t *l)
 
void ModQ1_Batches_BuildQ1Q2Poly (model_t *mod, msurface_t *surf, builddata_t *cookie)
 
void Mod_LightmapAllocInit (lmalloc_t *lmallocator, qboolean hasdeluxe, unsigned int width, unsigned int height, int firstlm)
 
void Mod_LightmapAllocDone (lmalloc_t *lmallocator, model_t *mod)
 
void Mod_LightmapAllocBlock (lmalloc_t *lmallocator, int w, int h, unsigned short *x, unsigned short *y, int *tnum)
 
void Surf_CreateSurfaceLightmap (msurface_t *surf, int shift)
 
void Mod_Batches_Build (model_t *mod, builddata_t *bd)
 
void Mod_SetParent (mnode_t *node, mnode_t *parent)
 
qboolean Mod_LoadEdges (model_t *loadmodel, qbyte *mod_base, lump_t *l, subbsp_t subbsp)
 
qboolean Mod_LoadMarksurfaces (model_t *loadmodel, qbyte *mod_base, lump_t *l, subbsp_t subbsp)
 
qboolean Mod_LoadSurfedges (model_t *loadmodel, qbyte *mod_base, lump_t *l)
 
void CalcSurfaceExtents (model_t *mod, msurface_t *s)
 
void ModBrush_LoadGLStuff (void *ctx, void *data, size_t a, size_t b)
 
void Mod_LoadSpriteFrameShader (model_t *spr, int frame, int subframe, mspriteframe_t *frameinfo)
 
void Mod_Print (void)
 

Variables

cvar_t r_shadow_bumpscale_basetexture
 
cvar_t r_replacemodels
 
cvar_t r_lightmap_average
 
cvar_t mod_loadentfiles = CVAR("sv_loadentfiles", "1")
 
cvar_t mod_loadentfiles_dir = CVAR("sv_loadentfiles_dir", "")
 
cvar_t mod_external_vis = CVARD("mod_external_vis", "1", "Attempt to load .vis patches for quake maps, allowing transparent water to work properly.")
 
cvar_t mod_warnmodels = CVARD("mod_warnmodels", "1", "Warn if any models failed to load. Set to 0 if your mod is likely to lack optional models (like its in development).")
 
cvar_t mod_litsprites_force = CVARFD("mod_litsprites_force", "0", CVAR_RENDERERLATCH, "If set to 1, sprites will be lit according to world lighting (including rtlights), like Tenebrae. Ideally use EF_ADDITIVE or EF_FULLBRIGHT to make emissive sprites instead.")
 
cvar_t mod_loadmappackages = CVARD ("mod_loadmappackages", "1", "Load additional content embedded within bsp files.")
 
cvar_t mod_lightscale_broken = CVARFD("mod_lightscale_broken", "0", CVAR_RENDERERLATCH, "When active, replicates a bug from vanilla - the radius of r_dynamic lights is scaled by per-surface texture scale rather than using actual distance.")
 
cvar_t mod_lightpoint_distance = CVARD("mod_lightpoint_distance", "8192", "This is the maximum distance to trace when searching for a ground surface for lighting info on map formats without light more fancy lighting info. Use 2048 for full compat with Quake.")
 
cvar_t r_sprite_backfacing = CVARD ("r_sprite_backfacing", "0", "Make oriented sprites face backwards relative to their orientation, for compat with q1.")
 
cvar_t r_nolerp_list = CVARFD ("r_nolerp_list", "", CVAR_RENDERERLATCH, "Models in this list will not interpolate. Any models included here should be considered bad.")
 
cvar_t r_noshadow_list = CVARAFD ("r_noshadow_list", "r_noEntityCastShadowList", "progs/missile.mdl,progs/flame.mdl,progs/flame2.mdl,progs/lavaball.mdl,progs/grenade.mdl,progs/spike.mdl,progs/s_spike.mdl,progs/laser.mdl,progs/lspike.mdl,progs/candle.mdl", CVAR_RENDERERLATCH, "Models in this list will not cast shadows.")
 
cvar_t gl_overbright
 
cvar_t gl_specular
 
cvar_t gl_load24bit
 
cvar_t gl_miptexLevel
 
cvar_t r_fb_bmodels
 
cvar_t r_noframegrouplerp = CVARF ("r_noframegrouplerp", "0", CVAR_ARCHIVE)
 
cvar_t dpcompat_psa_ungroup = CVAR ("dpcompat_psa_ungroup", "0")
 
texture_t r_notexture_mip_real
 
texture_tr_notexture_mip = &r_notexture_mip_real
 
model_tmod_known
 
int mod_numknown
 
char mod_modifier [MAX_QPATH]
 
cvar_t r_loadlits
 
model_tlightmodel
 
qbyte lmgamma [256]
 

Function Documentation

◆ BuildLightMapGammaTable()

void BuildLightMapGammaTable ( float  g,
float  c 
)

◆ CalcSurfaceExtents()

void CalcSurfaceExtents ( model_t mod,
msurface_t s 
)

◆ CM_Init()

void CM_Init ( void  )

◆ Mod_Batches_Build()

void Mod_Batches_Build ( model_t mod,
builddata_t bd 
)

◆ Mod_BSPX_List_f()

void Mod_BSPX_List_f ( void  )

◆ Mod_BSPX_Strip_f()

void Mod_BSPX_Strip_f ( void  )

◆ Mod_ClearAll()

void Mod_ClearAll ( void  )

◆ Mod_Extradata()

void * Mod_Extradata ( model_t mod)

◆ Mod_FileWritten()

void Mod_FileWritten ( const char *  filename)

◆ Mod_FindCubemaps_f()

void Mod_FindCubemaps_f ( void  )

◆ Mod_FindName()

model_t * Mod_FindName ( const char *  name)

◆ Mod_FixName()

const char * Mod_FixName ( const char *  modname,
const char *  worldname 
)

◆ Mod_ForName()

model_t * Mod_ForName ( const char *  name,
enum mlverbosity_e  verbosity 
)

◆ Mod_GetEntitiesString()

const char * Mod_GetEntitiesString ( model_t mod)

◆ Mod_Init()

void Mod_Init ( qboolean  initial)

◆ Mod_LightmapAllocBlock()

void Mod_LightmapAllocBlock ( lmalloc_t lmallocator,
int  w,
int  h,
unsigned short *  x,
unsigned short *  y,
int tnum 
)

◆ Mod_LightmapAllocDone()

void Mod_LightmapAllocDone ( lmalloc_t lmallocator,
model_t mod 
)

◆ Mod_LightmapAllocInit()

void Mod_LightmapAllocInit ( lmalloc_t lmallocator,
qboolean  hasdeluxe,
unsigned int  width,
unsigned int  height,
int  firstlm 
)

◆ Mod_LoadAliasShaders()

void Mod_LoadAliasShaders ( model_t mod)

◆ Mod_LoadDoomLevel()

qboolean QDECL Mod_LoadDoomLevel ( model_t mod,
void buffer,
size_t  fsize 
)

◆ Mod_LoadDoomSprite()

void Mod_LoadDoomSprite ( model_t mod)

◆ Mod_LoadEdges()

qboolean Mod_LoadEdges ( model_t loadmodel,
qbyte mod_base,
lump_t l,
subbsp_t  subbsp 
)

◆ Mod_LoadEntities()

void Mod_LoadEntities ( model_t loadmodel,
qbyte mod_base,
lump_t l 
)

◆ Mod_LoadEntitiesBlob()

qboolean Mod_LoadEntitiesBlob ( struct model_s mod,
const char *  entdata,
size_t  entdatasize 
)

◆ Mod_LoadLighting()

void Mod_LoadLighting ( model_t loadmodel,
bspx_header_t bspx,
qbyte mod_base,
lump_t l,
qboolean  interleaveddeluxe,
lightmapoverrides_t overrides,
subbsp_t  subbsp 
)

◆ Mod_LoadMapArchive()

void Mod_LoadMapArchive ( model_t mod,
void archivedata,
size_t  archivesize 
)

◆ Mod_LoadMarksurfaces()

qboolean Mod_LoadMarksurfaces ( model_t loadmodel,
qbyte mod_base,
lump_t l,
subbsp_t  subbsp 
)

◆ Mod_LoadModel()

model_t * Mod_LoadModel ( model_t mod,
enum mlverbosity_e  verbose 
)

◆ Mod_LoadQ2BrushModel()

qboolean QDECL Mod_LoadQ2BrushModel ( model_t mod,
void buffer,
size_t  fsize 
)

◆ Mod_LoadSprite2Model()

qboolean QDECL Mod_LoadSprite2Model ( model_t mod,
void buffer,
size_t  fsize 
)

◆ Mod_LoadSpriteFrameShader()

void Mod_LoadSpriteFrameShader ( model_t spr,
int  frame,
int  subframe,
mspriteframe_t frameinfo 
)

◆ Mod_LoadSpriteModel()

qboolean QDECL Mod_LoadSpriteModel ( model_t mod,
void buffer,
size_t  fsize 
)

◆ Mod_LoadSpriteShaders()

void Mod_LoadSpriteShaders ( model_t spr)

◆ Mod_LoadSurfedges()

qboolean Mod_LoadSurfedges ( model_t loadmodel,
qbyte mod_base,
lump_t l 
)

◆ Mod_LoadVertexes()

qboolean Mod_LoadVertexes ( model_t loadmodel,
qbyte mod_base,
lump_t l 
)

◆ Mod_LoadVertexNormals()

qboolean Mod_LoadVertexNormals ( model_t loadmodel,
bspx_header_t bspx,
qbyte mod_base,
lump_t l 
)

◆ Mod_ModelLoaded()

void Mod_ModelLoaded ( void ctx,
void data,
size_t  a,
size_t  b 
)

◆ Mod_NowLoadExternal()

void Mod_NowLoadExternal ( model_t loadmodel)

◆ Mod_ParseEntities()

void Mod_ParseEntities ( model_t mod)

◆ Mod_ParseWorldspawnKey()

const char * Mod_ParseWorldspawnKey ( model_t mod,
const char *  key,
char *  buffer,
size_t  sizeofbuffer 
)

◆ Mod_Print()

void Mod_Print ( void  )

◆ Mod_Purge()

void Mod_Purge ( enum mod_purge_e  ptype)

◆ Mod_PurgeModel()

qboolean Mod_PurgeModel ( model_t mod,
enum mod_purge_e  ptype 
)

◆ Mod_Realign_f()

void Mod_Realign_f ( void  )

◆ Mod_RebuildLightmaps()

void Mod_RebuildLightmaps ( void  )

◆ Mod_RegisterModelFormatMagic()

int Mod_RegisterModelFormatMagic ( void module,
const char *  formatname,
qbyte magic,
size_t  magicsize,
qboolean(QDECL *load)(model_t *mod, void *buffer, size_t fsize)   
)

◆ Mod_RegisterModelFormatText()

int Mod_RegisterModelFormatText ( void module,
const char *  formatname,
char *  magictext,
qboolean(QDECL *load)(model_t *mod, void *buffer, size_t fsize)   
)

◆ Mod_ResortShaders()

void Mod_ResortShaders ( void  )

◆ Mod_SetEntitiesString()

void Mod_SetEntitiesString ( model_t mod,
const char *  str,
qboolean  docopy 
)

◆ Mod_SetEntitiesStringLen()

void Mod_SetEntitiesStringLen ( model_t mod,
const char *  str,
size_t  strsize 
)

◆ Mod_SetModifier()

void Mod_SetModifier ( const char *  modifier)

◆ Mod_SetParent()

void Mod_SetParent ( mnode_t node,
mnode_t parent 
)

◆ Mod_Shutdown()

void Mod_Shutdown ( qboolean  final)

◆ Mod_SortShaders()

void Mod_SortShaders ( model_t mod)

◆ Mod_SubmodelLoaded()

void Mod_SubmodelLoaded ( model_t mod,
int  state 
)

◆ Mod_TouchModel()

void Mod_TouchModel ( const char *  name)

◆ Mod_UnRegisterAllModelFormats()

void Mod_UnRegisterAllModelFormats ( void module)

◆ Mod_UnRegisterModelFormat()

void Mod_UnRegisterModelFormat ( void module,
int  idx 
)

◆ ModBrush_LoadGLStuff()

void ModBrush_LoadGLStuff ( void ctx,
void data,
size_t  a,
size_t  b 
)

◆ ModQ1_Batches_BuildQ1Q2Poly()

void ModQ1_Batches_BuildQ1Q2Poly ( model_t mod,
msurface_t surf,
builddata_t cookie 
)

◆ Surf_CreateSurfaceLightmap()

void Surf_CreateSurfaceLightmap ( msurface_t surf,
int  shift 
)

Variable Documentation

◆ buffer

void* buffer

◆ buffersize

void size_t buffersize

◆ chksum

unsigned int chksum

◆ dpcompat_psa_ungroup

cvar_t dpcompat_psa_ungroup = CVAR ("dpcompat_psa_ungroup", "0")

◆ formatname

char* formatname

◆ gl_load24bit

cvar_t gl_load24bit

◆ gl_miptexLevel

cvar_t gl_miptexLevel

◆ gl_overbright

cvar_t gl_overbright

◆ gl_specular

cvar_t gl_specular

◆ ident

char* ident

◆ lightmodel

model_t* lightmodel
extern

◆ lmgamma

qbyte lmgamma[256]

◆ magic

qbyte* magic

◆ magicsize

size_t magicsize

◆ mod_external_vis

cvar_t mod_external_vis = CVARD("mod_external_vis", "1", "Attempt to load .vis patches for quake maps, allowing transparent water to work properly.")

◆ mod_known

model_t* mod_known

◆ mod_lightpoint_distance

cvar_t mod_lightpoint_distance = CVARD("mod_lightpoint_distance", "8192", "This is the maximum distance to trace when searching for a ground surface for lighting info on map formats without light more fancy lighting info. Use 2048 for full compat with Quake.")

◆ mod_lightscale_broken

cvar_t mod_lightscale_broken = CVARFD("mod_lightscale_broken", "0", CVAR_RENDERERLATCH, "When active, replicates a bug from vanilla - the radius of r_dynamic lights is scaled by per-surface texture scale rather than using actual distance.")

◆ mod_litsprites_force

cvar_t mod_litsprites_force = CVARFD("mod_litsprites_force", "0", CVAR_RENDERERLATCH, "If set to 1, sprites will be lit according to world lighting (including rtlights), like Tenebrae. Ideally use EF_ADDITIVE or EF_FULLBRIGHT to make emissive sprites instead.")

◆ mod_loadentfiles

cvar_t mod_loadentfiles = CVAR("sv_loadentfiles", "1")

◆ mod_loadentfiles_dir

cvar_t mod_loadentfiles_dir = CVAR("sv_loadentfiles_dir", "")

◆ mod_loadmappackages

cvar_t mod_loadmappackages = CVARD ("mod_loadmappackages", "1", "Load additional content embedded within bsp files.")

◆ mod_modifier

char mod_modifier[MAX_QPATH]

◆ mod_numknown

int mod_numknown

◆ mod_warnmodels

cvar_t mod_warnmodels = CVARD("mod_warnmodels", "1", "Warn if any models failed to load. Set to 0 if your mod is likely to lack optional models (like its in development).")

◆ module

void* module

◆ newname

const char* newname

◆ oldname

const char* oldname

◆ r_fb_bmodels

cvar_t r_fb_bmodels

◆ r_lightmap_average

cvar_t r_lightmap_average
extern

◆ r_loadlits

cvar_t r_loadlits
extern

◆ r_noframegrouplerp

cvar_t r_noframegrouplerp = CVARF ("r_noframegrouplerp", "0", CVAR_ARCHIVE)

◆ r_nolerp_list

cvar_t r_nolerp_list = CVARFD ("r_nolerp_list", "", CVAR_RENDERERLATCH, "Models in this list will not interpolate. Any models included here should be considered bad.")

◆ r_noshadow_list

cvar_t r_noshadow_list = CVARAFD ("r_noshadow_list", "r_noEntityCastShadowList", "progs/missile.mdl,progs/flame.mdl,progs/flame2.mdl,progs/lavaball.mdl,progs/grenade.mdl,progs/spike.mdl,progs/s_spike.mdl,progs/laser.mdl,progs/lspike.mdl,progs/candle.mdl", CVAR_RENDERERLATCH, "Models in this list will not cast shadows.")

◆ r_notexture_mip

texture_t* r_notexture_mip = &r_notexture_mip_real

◆ r_notexture_mip_real

texture_t r_notexture_mip_real

◆ r_replacemodels

cvar_t r_replacemodels

◆ r_shadow_bumpscale_basetexture

cvar_t r_shadow_bumpscale_basetexture
extern

◆ r_sprite_backfacing

cvar_t r_sprite_backfacing = CVARD ("r_sprite_backfacing", "0", "Make oriented sprites face backwards relative to their orientation, for compat with q1.")