int isstatic;
/// true if this is a compiled world light, cleared if the light changes
int compiled;
- /// the shadowing mode used to compile this light
- int shadowmode;
/// the size that this light should have (assuming no scene LOD kicking in to reduce it)
int shadowmapsidesize;
/// position of this light in the shadowmap atlas
// rtlights use these colors for the materials on this entity
float render_rtlight_diffuse[3];
float render_rtlight_specular[3];
- // ignore lightmap and use lightgrid on this entity (e.g. FULLBRIGHT)
+ // ignore lightmap and use fixed lighting settings on this entity (e.g. FULLBRIGHT)
qboolean render_modellight_forced;
// do not process per pixel lights on this entity at all (like MATERIALFLAG_NORTLIGHT)
qboolean render_rtlight_disabled;
+ // use the 3D lightmap from q3bsp on this entity
+ qboolean render_lightgrid;
// storage of decals on this entity
// (note: if allowdecals is set, be sure to call R_DecalSystem_Reset on removal!)
}
qw_downloadtype_t;
+#ifdef CONFIG_VIDEO_CAPTURE
typedef enum capturevideoformat_e
{
CAPTUREVIDEOFORMAT_AVI_I420,
void *formatspecific;
}
capturevideostate_t;
+#endif
#define CL_MAX_DOWNLOADACKS 4
// extra user info for the "connect" command
char connect_userinfo[MAX_USERINFO_STRING];
+#ifdef CONFIG_VIDEO_CAPTURE
// video capture stuff
capturevideostate_t capturevideo;
+#endif
// crypto channel
crypto_t crypto;
}
ptype_t;
-typedef struct decal_s
-{
- // fields used by rendering: (44 bytes)
- unsigned short typeindex;
- unsigned short texnum;
- unsigned int decalsequence;
- vec3_t org;
- vec3_t normal;
- float size;
- float alpha; // 0-255
- unsigned char color[3];
- unsigned char unused1;
- int clusterindex; // cheap culling by pvs
-
- // fields not used by rendering: (36 bytes in 32bit, 40 bytes in 64bit)
- float time2; // used for decal fade
- unsigned int owner; // decal stuck to this entity
- dp_model_t *ownermodel; // model the decal is stuck to (used to make sure the entity is still alive)
- vec3_t relativeorigin; // decal at this location in entity's coordinate space
- vec3_t relativenormal; // decal oriented this way relative to entity's coordinate space
-}
-decal_t;
-
typedef struct particle_s
{
// for faster batch rendering, particles are rendered in groups by effect (resulting in less perfect sorting but far less state changes)
sfx_t *sfx_ric3;
sfx_t *sfx_r_exp3;
// indicates that the file "sound/misc/talk2.wav" was found (for use by team chat messages)
- qboolean foundtalk2wav;
+ qboolean foundteamchatsound;
// refresh related state
int max_lightstyle;
int max_brushmodel_entities;
int max_particles;
- int max_decals;
int max_showlmps;
entity_t *entities;
lightstyle_t *lightstyle;
int *brushmodel_entities;
particle_t *particles;
- decal_t *decals;
showlmp_t *showlmps;
int num_entities;
//
// cvars
//
-extern cvar_t cl_name;
+extern cvar_t name;
extern cvar_t cl_color;
-extern cvar_t cl_rate;
-extern cvar_t cl_rate_burstsize;
-extern cvar_t cl_pmodel;
-extern cvar_t cl_playermodel;
-extern cvar_t cl_playerskin;
+extern cvar_t rate;
+extern cvar_t rate_burstsize;
+extern cvar_t pmodel;
+extern cvar_t playermodel;
+extern cvar_t playerskin;
extern cvar_t rcon_password;
extern cvar_t rcon_address;
extern client_state_t cl;
-extern void CL_AllocLightFlash (entity_render_t *ent, matrix4x4_t *matrix, float radius, float red, float green, float blue, float decay, float lifetime, int cubemapnum, int style, int shadowenable, vec_t corona, vec_t coronasizescale, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int flags);
+extern void CL_AllocLightFlash (entity_render_t *ent, matrix4x4_t *matrix, float radius, float red, float green, float blue, float decay, float lifetime, char *cubemapname, int style, int shadowenable, vec_t corona, vec_t coronasizescale, vec_t ambientscale, vec_t diffusescale, vec_t specularscale, int flags);
cl_locnode_t *CL_Locs_FindNearest(const vec3_t point);
void CL_Locs_FindLocationName(char *buffer, size_t buffersize, vec3_t point);
void CL_PlayDemo_f(cmd_state_t *cmd);
void CL_TimeDemo_f(cmd_state_t *cmd);
+void CL_Demo_Init(void);
+
//
// cl_parse.c
//
void CL_RotateMoves(const matrix4x4_t *m);
typedef enum meshname_e {
- MESH_DEBUG,
- MESH_CSQCPOLYGONS,
- MESH_PARTICLES,
+ MESH_SCENE, // CSQC R_PolygonBegin, potentially also engine particles and debug stuff
MESH_UI,
NUM_MESHENTITIES,
} meshname_t;
extern entity_t cl_meshentities[NUM_MESHENTITIES];
extern dp_model_t cl_meshentitymodels[NUM_MESHENTITIES];
extern const char *cl_meshentitynames[NUM_MESHENTITIES];
-#define CL_Mesh_Debug() (&cl_meshentitymodels[MESH_DEBUG])
-#define CL_Mesh_CSQC() (&cl_meshentitymodels[MESH_CSQCPOLYGONS])
-#define CL_Mesh_Particles() (&cl_meshentitymodels[MESH_PARTICLES])
+#define CL_Mesh_Scene() (&cl_meshentitymodels[MESH_SCENE])
#define CL_Mesh_UI() (&cl_meshentitymodels[MESH_UI])
-void CL_MeshEntities_AddToScene(void);
-void CL_MeshEntities_Reset(void);
+void CL_MeshEntities_Scene_Clear(void);
+void CL_MeshEntities_Scene_AddRenderEntity(void);
+void CL_MeshEntities_Scene_FinalizeRenderEntity(void);
void CL_UpdateEntityShading(void);
void CL_NewFrameReceived(int num);
void V_CalcViewBlend(void);
void V_CalcRefdefUsing (const matrix4x4_t *entrendermatrix, const vec3_t clviewangles, qboolean teleported, qboolean clonground, qboolean clcmdjump, float clstatsviewheight, qboolean cldead, qboolean clintermission, const vec3_t clvelocity);
void V_CalcRefdef(void);
+void V_MakeViewIsometric(void);
+void V_MakeViewIsometric(void);
+void V_StartPitchDrift(void);
void CL_Locs_Reload_f(cmd_state_t *cmd);
#endif