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

Go to the source code of this file.

Classes

struct  mesh_s
 
struct  batch_s
 
struct  pvsbuffer_t
 
struct  modelfuncs_t
 
struct  mvertex_t
 
struct  vbo_s
 
struct  texture_s
 
struct  medge_t
 
struct  mtexinfo_s
 
struct  mfog_s
 
struct  denvmap_t
 
struct  menvmap_t
 
struct  msurface_s
 
struct  mnode_s
 
struct  mleaf_s
 
struct  mmodel_t
 
struct  hull_s
 
struct  mspriteframe_s
 
struct  mspritegroup_t
 
struct  mspriteframedesc_t
 
struct  msprite_t
 
struct  mstvert_t
 
struct  maliasframedesc_t
 
struct  maliasgroupframedesc_t
 
struct  maliasgroup_t
 
struct  mtriangle_s
 
struct  aliashdr_t
 
struct  md2stvert_t
 
struct  md2triangle_t
 
struct  md2trivertx_t
 
struct  md2frame_t
 
struct  md2_t
 
struct  dq3gridlight_t
 
struct  rbspgridlight_t
 
struct  q3lightgridinfo_t
 
union  specificmodeltype_t
 
struct  portal_t
 
struct  decoupled_lm_info_s
 
struct  facelmvecs_s
 
struct  surfedgenormals_s
 
struct  model_s
 
struct  lightmapoverrides_t
 

Typedefs

typedef struct builddata_s builddata_t
 
typedef struct bspx_header_s bspx_header_t
 
typedef unsigned int boneidx_t
 
typedef boneidx_t bone_vec4_t[4]
 
typedef struct mesh_s mesh_t
 
typedef struct batch_s batch_t
 
typedef struct vbo_s vbo_t
 
typedef struct texture_s texture_t
 
typedef struct mtexinfo_s mtexinfo_t
 
typedef struct mfog_s mfog_t
 
typedef struct msurface_s msurface_t
 
typedef struct mnode_s mnode_t
 
typedef struct mleaf_s mleaf_t
 
typedef struct hull_s hull_t
 
typedef struct fragmentdecal_s fragmentdecal_t
 
typedef struct mspriteframe_s mspriteframe_t
 
typedef struct mtriangle_s mtriangle_t
 
typedef struct model_s model_t
 

Enumerations

enum  shadersort_t {
  SHADER_SORT_NONE , SHADER_SORT_RIPPLE , SHADER_SORT_DEFERREDLIGHT , SHADER_SORT_PORTAL ,
  SHADER_SORT_SKY , SHADER_SORT_OPAQUE , SHADER_SORT_DECAL , SHADER_SORT_SEETHROUGH ,
  SHADER_SORT_UNLITDECAL , SHADER_SORT_BANNER , SHADER_SORT_UNDERWATER , SHADER_SORT_BLEND ,
  SHADER_SORT_ADDITIVE , SHADER_SORT_NEAREST , SHADER_SORT_COUNT
}
 
enum  pvsmerge_t { PVM_FAST , PVM_MERGE , PVM_REPLACE }
 
enum  modtype_t {
  mod_brush , mod_sprite , mod_alias , mod_dummy ,
  mod_halflife , mod_heightmap
}
 
enum  fromgame_t {
  fg_quake , fg_quake2 , fg_quake3 , fg_halflife ,
  fg_new , fg_doom , fg_doom3
}
 
enum  subbsp_t { sb_none , sb_quake64 , sb_long1 , sb_long2 }
 
enum  { MLS_NOTLOADED , MLS_LOADING , MLS_LOADED , MLS_FAILED }
 

Functions

void rag_uninstanciateall (void)
 
void rag_flushdolls (qboolean force)
 
void rag_freedoll (struct doll_s *doll)
 
struct doll_s * rag_createdollfromstring (struct model_s *mod, const char *fname, int numbones, const char *file)
 
void rag_doallanimations (struct world_s *world)
 
void rag_removedeltaent (lerpents_t *le)
 
void rag_updatedeltaent (struct world_s *w, entity_t *ent, lerpents_t *le)
 
void rag_lerpdeltaent (lerpents_t *le, unsigned int bonecount, short *newstate, float frac, short *oldstate)
 
void skel_reset (struct world_s *world)
 
void GL_SelectVBO (int vbo)
 
void GL_SelectEBO (int vbo)
 
void GL_DeselectVAO (void)
 
void Q1BSP_CheckHullNodes (hull_t *hull)
 
void Q1BSP_SetModelFuncs (struct model_s *mod)
 
void Q1BSP_LoadBrushes (struct model_s *model, bspx_header_t *bspx, void *mod_base)
 
void Q1BSP_Init (void)
 
void Q1BSP_GenerateShadowMesh (struct model_s *model, struct dlight_s *dl, const qbyte *lightvis, qbyte *litvis, void(*callback)(msurface_t *surf))
 
void BSPX_LightGridLoad (struct model_s *model, bspx_header_t *bspx, qbyte *mod_base)
 
void BSPX_LoadEnvmaps (struct model_s *mod, bspx_header_t *bspx, void *mod_base)
 
voidBSPX_FindLump (bspx_header_t *bspxheader, void *mod_base, char *lumpname, int *lumpsize)
 
bspx_header_tBSPX_Setup (struct model_s *mod, char *filebase, size_t filelen, lump_t *lumps, size_t numlumps)
 
void Fragment_ClipPoly (fragmentdecal_t *dec, int numverts, float *inverts, shader_t *surfshader)
 
size_t Fragment_ClipPlaneToBrush (vecV_t *points, size_t maxpoints, void *planes, size_t planestride, size_t numplanes, vec4_t face)
 
void Mod_ClipDecal (struct model_s *mod, vec3_t center, vec3_t normal, vec3_t tangent1, vec3_t tangent2, float size, unsigned int surfflagmask, unsigned int surflagmatch, void(*callback)(void *ctx, vec3_t *fte_restrict points, size_t numpoints, shader_t *shader), void *ctx)
 
void Q1BSP_MarkLights (dlight_t *light, dlightbitmask_t bit, mnode_t *node)
 
void GLQ1BSP_LightPointValues (struct model_s *model, const vec3_t point, vec3_t res_diffuse, vec3_t res_ambient, vec3_t res_dir)
 
qboolean Q1BSP_RecursiveHullCheck (hull_t *hull, int num, const vec3_t p1, const vec3_t p2, unsigned int hitcontents, struct trace_s *trace)
 
mspriteframe_tR_GetSpriteFrame (entity_t *currententity)
 
void Mod_LoadLighting (struct model_s *loadmodel, bspx_header_t *bspx, qbyte *mod_base, lump_t *l, qboolean interleaveddeluxe, lightmapoverrides_t *overrides, subbsp_t subbsp)
 
float RadiusFromBounds (const vec3_t mins, const vec3_t maxs)
 
void Terr_Init (void)
 
struct plugterrainfuncs_sTerr_GetTerrainFuncs (size_t structsize)
 
void Terr_DrawTerrainModel (batch_t **batch, entity_t *e)
 
void Terr_FreeModel (model_t *mod)
 
void Terr_FinishTerrain (model_t *model)
 
void Terr_PurgeTerrainModel (model_t *hm, qboolean lightmapsonly, qboolean lightmapreusable)
 
voidMod_LoadTerrainInfo (model_t *mod, char *loadname, qboolean force)
 
qboolean Terrain_LocateSection (const char *name, flocation_t *loc)
 
qboolean Heightmap_Trace (model_t *model, int forcehullnum, const framestate_t *framestate, const vec3_t axis[3], const vec3_t start, const vec3_t end, const vec3_t mins, const vec3_t maxs, qboolean capsule, unsigned int contentmask, struct trace_s *trace)
 
unsigned int Heightmap_PointContents (model_t *model, const vec3_t axis[3], const vec3_t org)
 
void Terrain_ClipDecal (struct fragmentdecal_s *dec, float *center, float radius, model_t *model)
 
qboolean Terr_DownloadedSection (char *fname)
 
void CL_Parse_BrushEdit (void)
 
qboolean SV_Parse_BrushEdit (void)
 
qboolean SV_Prespawn_Brushes (sizebuf_t *msg, unsigned int *modelindex, unsigned int *lastid)
 
qboolean Heightmap_Edit (model_t *mod, int action, float *pos, float radius, float quant)
 
void CM_Init (void)
 
struct model_sCM_TempBoxModel (const vec3_t mins, const vec3_t maxs)
 
qboolean CM_SetAreaPortalState (struct model_s *mod, int portalnum, qboolean open)
 
qboolean CM_HeadnodeVisible (struct model_s *mod, int nodenum, const qbyte *visbits)
 
qboolean VARGS CM_AreasConnected (struct model_s *mod, unsigned int area1, unsigned int area2)
 
int CM_ClusterBytes (struct model_s *mod)
 
int CM_LeafContents (struct model_s *mod, int leafnum)
 
int CM_LeafCluster (struct model_s *mod, int leafnum)
 
int CM_LeafArea (struct model_s *mod, int leafnum)
 
int CM_WriteAreaBits (struct model_s *mod, qbyte *buffer, int area, qboolean merge)
 
int CM_PointLeafnum (struct model_s *mod, const vec3_t p)
 
qbyteCM_ClusterPVS (struct model_s *mod, int cluster, pvsbuffer_t *buffer, pvsmerge_t merge)
 
qbyteCM_ClusterPHS (struct model_s *mod, int cluster, pvsbuffer_t *buffer)
 
int CM_BoxLeafnums (struct model_s *mod, const vec3_t mins, const vec3_t maxs, int *list, int listsize, int *topnode)
 
int CM_PointContents (struct model_s *mod, const vec3_t p)
 
int CM_TransformedPointContents (struct model_s *mod, const vec3_t p, int headnode, const vec3_t origin, const vec3_t angles)
 
int CM_HeadnodeForBox (struct model_s *mod, const vec3_t mins, const vec3_t maxs)
 
void CMQ2_SetAreaPortalState (model_t *mod, unsigned int portalnum, qboolean open)
 
void CMQ3_SetAreaPortalState (model_t *mod, unsigned int area1, unsigned int area2, qboolean open)
 
size_t CM_WritePortalState (model_t *mod, void **data)
 
qofs_t CM_ReadPortalState (model_t *mod, qbyte *ptr, qofs_t ptrsize)
 
void CategorizePlane (mplane_t *plane)
 
void CalcSurfaceExtents (model_t *mod, msurface_t *s)
 

Variables

aliashdr_tpheader
 
mstvert_t stverts [MAXALIASVERTS *2]
 
mtriangle_t triangles [MAXALIASTRIS]
 
dtrivertx_tposeverts [MAXALIASFRAMES]
 

Typedef Documentation

◆ batch_t

typedef struct batch_s batch_t

◆ bone_vec4_t

typedef boneidx_t bone_vec4_t[4]

◆ boneidx_t

typedef unsigned char boneidx_t

◆ bspx_header_t

typedef struct bspx_header_s bspx_header_t

◆ builddata_t

typedef struct builddata_s builddata_t

◆ fragmentdecal_t

typedef struct fragmentdecal_s fragmentdecal_t

◆ hull_t

typedef struct hull_s hull_t

◆ mesh_t

typedef struct mesh_s mesh_t

◆ mfog_t

typedef struct mfog_s mfog_t

◆ mleaf_t

typedef struct mleaf_s mleaf_t

◆ mnode_t

typedef struct mnode_s mnode_t

◆ model_t

typedef struct model_s model_t

◆ mspriteframe_t

◆ msurface_t

typedef struct msurface_s msurface_t

◆ mtexinfo_t

typedef struct mtexinfo_s mtexinfo_t

◆ mtriangle_t

typedef struct mtriangle_s mtriangle_t

◆ texture_t

typedef struct texture_s texture_t

◆ vbo_t

typedef struct vbo_s vbo_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MLS_NOTLOADED 
MLS_LOADING 
MLS_LOADED 
MLS_FAILED 

◆ fromgame_t

enum fromgame_t
Enumerator
fg_quake 
fg_quake2 
fg_quake3 
fg_halflife 
fg_new 
fg_doom 
fg_doom3 

◆ modtype_t

enum modtype_t
Enumerator
mod_brush 
mod_sprite 
mod_alias 
mod_dummy 
mod_halflife 
mod_heightmap 

◆ pvsmerge_t

enum pvsmerge_t
Enumerator
PVM_FAST 
PVM_MERGE 
PVM_REPLACE 

◆ shadersort_t

Enumerator
SHADER_SORT_NONE 
SHADER_SORT_RIPPLE 
SHADER_SORT_DEFERREDLIGHT 
SHADER_SORT_PORTAL 
SHADER_SORT_SKY 
SHADER_SORT_OPAQUE 
SHADER_SORT_DECAL 
SHADER_SORT_SEETHROUGH 
SHADER_SORT_UNLITDECAL 
SHADER_SORT_BANNER 
SHADER_SORT_UNDERWATER 
SHADER_SORT_BLEND 
SHADER_SORT_ADDITIVE 
SHADER_SORT_NEAREST 
SHADER_SORT_COUNT 

◆ subbsp_t

enum subbsp_t
Enumerator
sb_none 
sb_quake64 
sb_long1 
sb_long2 

Function Documentation

◆ BSPX_FindLump()

void * BSPX_FindLump ( bspx_header_t bspxheader,
void mod_base,
char *  lumpname,
int lumpsize 
)

◆ BSPX_LightGridLoad()

void BSPX_LightGridLoad ( struct model_s model,
bspx_header_t bspx,
qbyte mod_base 
)

◆ BSPX_LoadEnvmaps()

void BSPX_LoadEnvmaps ( struct model_s mod,
bspx_header_t bspx,
void mod_base 
)

◆ BSPX_Setup()

bspx_header_t * BSPX_Setup ( struct model_s mod,
char *  filebase,
size_t  filelen,
lump_t lumps,
size_t  numlumps 
)

◆ CalcSurfaceExtents()

void CalcSurfaceExtents ( model_t mod,
msurface_t s 
)

◆ CategorizePlane()

void CategorizePlane ( mplane_t plane)

◆ CL_Parse_BrushEdit()

void CL_Parse_BrushEdit ( void  )

◆ CM_AreasConnected()

qboolean VARGS CM_AreasConnected ( struct model_s mod,
unsigned int  area1,
unsigned int  area2 
)

◆ CM_BoxLeafnums()

int CM_BoxLeafnums ( struct model_s mod,
const vec3_t  mins,
const vec3_t  maxs,
int list,
int  listsize,
int topnode 
)

◆ CM_ClusterBytes()

int CM_ClusterBytes ( struct model_s mod)

◆ CM_ClusterPHS()

qbyte * CM_ClusterPHS ( struct model_s mod,
int  cluster,
pvsbuffer_t buffer 
)

◆ CM_ClusterPVS()

qbyte * CM_ClusterPVS ( struct model_s mod,
int  cluster,
pvsbuffer_t buffer,
pvsmerge_t  merge 
)

◆ CM_HeadnodeForBox()

int CM_HeadnodeForBox ( struct model_s mod,
const vec3_t  mins,
const vec3_t  maxs 
)

◆ CM_HeadnodeVisible()

qboolean CM_HeadnodeVisible ( struct model_s mod,
int  nodenum,
const qbyte visbits 
)

◆ CM_Init()

void CM_Init ( void  )

◆ CM_LeafArea()

int CM_LeafArea ( struct model_s mod,
int  leafnum 
)

◆ CM_LeafCluster()

int CM_LeafCluster ( struct model_s mod,
int  leafnum 
)

◆ CM_LeafContents()

int CM_LeafContents ( struct model_s mod,
int  leafnum 
)

◆ CM_PointContents()

int CM_PointContents ( struct model_s mod,
const vec3_t  p 
)

◆ CM_PointLeafnum()

int CM_PointLeafnum ( struct model_s mod,
const vec3_t  p 
)

◆ CM_ReadPortalState()

qofs_t CM_ReadPortalState ( model_t mod,
qbyte ptr,
qofs_t  ptrsize 
)

◆ CM_SetAreaPortalState()

qboolean CM_SetAreaPortalState ( struct model_s mod,
int  portalnum,
qboolean  open 
)

◆ CM_TempBoxModel()

struct model_s * CM_TempBoxModel ( const vec3_t  mins,
const vec3_t  maxs 
)

◆ CM_TransformedPointContents()

int CM_TransformedPointContents ( struct model_s mod,
const vec3_t  p,
int  headnode,
const vec3_t  origin,
const vec3_t  angles 
)

◆ CM_WriteAreaBits()

int CM_WriteAreaBits ( struct model_s mod,
qbyte buffer,
int  area,
qboolean  merge 
)

◆ CM_WritePortalState()

size_t CM_WritePortalState ( model_t mod,
void **  data 
)

◆ CMQ2_SetAreaPortalState()

void CMQ2_SetAreaPortalState ( model_t mod,
unsigned int  portalnum,
qboolean  open 
)

◆ CMQ3_SetAreaPortalState()

void CMQ3_SetAreaPortalState ( model_t mod,
unsigned int  area1,
unsigned int  area2,
qboolean  open 
)

◆ Fragment_ClipPlaneToBrush()

size_t Fragment_ClipPlaneToBrush ( vecV_t *  points,
size_t  maxpoints,
void planes,
size_t  planestride,
size_t  numplanes,
vec4_t  face 
)

◆ Fragment_ClipPoly()

void Fragment_ClipPoly ( fragmentdecal_t dec,
int  numverts,
float *  inverts,
shader_t surfshader 
)

◆ GL_DeselectVAO()

void GL_DeselectVAO ( void  )

◆ GL_SelectEBO()

void GL_SelectEBO ( int  vbo)

◆ GL_SelectVBO()

void GL_SelectVBO ( int  vbo)

◆ GLQ1BSP_LightPointValues()

void GLQ1BSP_LightPointValues ( struct model_s model,
const vec3_t  point,
vec3_t  res_diffuse,
vec3_t  res_ambient,
vec3_t  res_dir 
)

◆ Heightmap_Edit()

qboolean Heightmap_Edit ( model_t mod,
int  action,
float *  pos,
float  radius,
float  quant 
)

◆ Heightmap_PointContents()

unsigned int Heightmap_PointContents ( model_t model,
const vec3_t  axis[3],
const vec3_t  org 
)

◆ Heightmap_Trace()

qboolean Heightmap_Trace ( model_t model,
int  forcehullnum,
const framestate_t framestate,
const vec3_t  axis[3],
const vec3_t  start,
const vec3_t  end,
const vec3_t  mins,
const vec3_t  maxs,
qboolean  capsule,
unsigned int  contentmask,
struct trace_s trace 
)

◆ Mod_ClipDecal()

void Mod_ClipDecal ( struct model_s mod,
vec3_t  center,
vec3_t  normal,
vec3_t  tangent1,
vec3_t  tangent2,
float  size,
unsigned int  surfflagmask,
unsigned int  surflagmatch,
void(*)(void *ctx, vec3_t *fte_restrict points, size_t numpoints, shader_t *shader callback,
void ctx 
)

◆ Mod_LoadLighting()

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

◆ Mod_LoadTerrainInfo()

void * Mod_LoadTerrainInfo ( model_t mod,
char *  loadname,
qboolean  force 
)

◆ Q1BSP_CheckHullNodes()

void Q1BSP_CheckHullNodes ( hull_t hull)

◆ Q1BSP_GenerateShadowMesh()

void Q1BSP_GenerateShadowMesh ( struct model_s model,
struct dlight_s dl,
const qbyte lightvis,
qbyte litvis,
void(*)(msurface_t *surf callback 
)

◆ Q1BSP_Init()

void Q1BSP_Init ( void  )

◆ Q1BSP_LoadBrushes()

void Q1BSP_LoadBrushes ( struct model_s model,
bspx_header_t bspx,
void mod_base 
)

◆ Q1BSP_MarkLights()

void Q1BSP_MarkLights ( dlight_t light,
dlightbitmask_t  bit,
mnode_t node 
)

◆ Q1BSP_RecursiveHullCheck()

qboolean Q1BSP_RecursiveHullCheck ( hull_t hull,
int  num,
const vec3_t  p1,
const vec3_t  p2,
unsigned int  hitcontents,
struct trace_s trace 
)

◆ Q1BSP_SetModelFuncs()

void Q1BSP_SetModelFuncs ( struct model_s mod)

◆ R_GetSpriteFrame()

mspriteframe_t * R_GetSpriteFrame ( entity_t currententity)

◆ RadiusFromBounds()

float RadiusFromBounds ( const vec3_t  mins,
const vec3_t  maxs 
)

◆ rag_createdollfromstring()

struct doll_s * rag_createdollfromstring ( struct model_s mod,
const char *  fname,
int  numbones,
const char *  file 
)

◆ rag_doallanimations()

void rag_doallanimations ( struct world_s world)

◆ rag_flushdolls()

void rag_flushdolls ( qboolean  force)

◆ rag_freedoll()

void rag_freedoll ( struct doll_s *  doll)

◆ rag_lerpdeltaent()

void rag_lerpdeltaent ( lerpents_t le,
unsigned int  bonecount,
short *  newstate,
float  frac,
short *  oldstate 
)

◆ rag_removedeltaent()

void rag_removedeltaent ( lerpents_t le)

◆ rag_uninstanciateall()

void rag_uninstanciateall ( void  )

◆ rag_updatedeltaent()

void rag_updatedeltaent ( struct world_s w,
entity_t ent,
lerpents_t le 
)

◆ skel_reset()

void skel_reset ( struct world_s world)

◆ SV_Parse_BrushEdit()

qboolean SV_Parse_BrushEdit ( void  )

◆ SV_Prespawn_Brushes()

qboolean SV_Prespawn_Brushes ( sizebuf_t msg,
unsigned int modelindex,
unsigned int lastid 
)

◆ Terr_DownloadedSection()

qboolean Terr_DownloadedSection ( char *  fname)

◆ Terr_DrawTerrainModel()

void Terr_DrawTerrainModel ( batch_t **  batch,
entity_t e 
)

◆ Terr_FinishTerrain()

void Terr_FinishTerrain ( model_t model)

◆ Terr_FreeModel()

void Terr_FreeModel ( model_t mod)

◆ Terr_GetTerrainFuncs()

struct plugterrainfuncs_s * Terr_GetTerrainFuncs ( size_t  structsize)

◆ Terr_Init()

void Terr_Init ( void  )

◆ Terr_PurgeTerrainModel()

void Terr_PurgeTerrainModel ( model_t hm,
qboolean  lightmapsonly,
qboolean  lightmapreusable 
)

◆ Terrain_ClipDecal()

void Terrain_ClipDecal ( struct fragmentdecal_s *  dec,
float *  center,
float  radius,
model_t model 
)

◆ Terrain_LocateSection()

qboolean Terrain_LocateSection ( const char *  name,
flocation_t loc 
)

Variable Documentation

◆ pheader

aliashdr_t* pheader
extern

◆ poseverts

dtrivertx_t* poseverts[MAXALIASFRAMES]
extern

◆ stverts

mstvert_t stverts[MAXALIASVERTS *2]
extern

◆ triangles

mtriangle_t triangles[MAXALIASTRIS]
extern