X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=client.h;h=ff96e4fe672d8f3308e7a17ad05af53c00c5137b;hb=a51a70c2254b27a68e5fe74cc5985b02dc36e1e9;hp=7bd78e027ffb92598b057727fece17724f301622;hpb=c38d0d2d6409d9b3174b6cf04f1bd09694cbfc81;p=xonotic%2Fdarkplaces.git diff --git a/client.h b/client.h index 7bd78e02..ff96e4fe 100644 --- a/client.h +++ b/client.h @@ -343,8 +343,6 @@ typedef struct rtlight_s 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 @@ -587,10 +585,12 @@ typedef struct entity_render_s // 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!) @@ -737,6 +737,7 @@ typedef enum qw_downloadtype_e } qw_downloadtype_t; +#ifdef CONFIG_VIDEO_CAPTURE typedef enum capturevideoformat_e { CAPTUREVIDEOFORMAT_AVI_I420, @@ -788,6 +789,7 @@ typedef struct capturevideostate_s void *formatspecific; } capturevideostate_t; +#endif #define CL_MAX_DOWNLOADACKS 4 @@ -917,8 +919,10 @@ typedef struct client_static_s // 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; @@ -986,29 +990,6 @@ typedef enum ptype_e } 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) @@ -1265,7 +1246,7 @@ typedef struct client_state_s 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 @@ -1325,7 +1306,6 @@ typedef struct client_state_s int max_lightstyle; int max_brushmodel_entities; int max_particles; - int max_decals; int max_showlmps; entity_t *entities; @@ -1338,7 +1318,6 @@ typedef struct client_state_s lightstyle_t *lightstyle; int *brushmodel_entities; particle_t *particles; - decal_t *decals; showlmp_t *showlmps; int num_entities; @@ -1543,7 +1522,7 @@ extern cvar_t cl_locs_enable; 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); @@ -2037,21 +2016,18 @@ void CL_ClientMovement_PlayerMove_Frame(cl_clientmovement_state_t *s); 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); @@ -2070,6 +2046,9 @@ void V_FadeViewFlashs(void); 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