]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
Minor optimizations
[xonotic/darkplaces.git] / client.h
index 112a9cacac87552031744d9e75a43a9043fb0a69..e47a3d140107bf55fd488191b72be9e8fa10f569 100644 (file)
--- a/client.h
+++ b/client.h
@@ -368,6 +368,11 @@ typedef struct entity_render_s
        float *animcache_normal3f;
        float *animcache_svector3f;
        float *animcache_tvector3f;
+       // interleaved arrays for rendering and dynamic vertex buffers for them
+       r_vertexposition_t *animcache_vertexposition;
+       r_meshbuffer_t *animcache_vertexpositionbuffer;
+       r_vertexmesh_t *animcache_vertexmesh;
+       r_meshbuffer_t *animcache_vertexmeshbuffer;
 
        // current lighting from map (updated ONLY by client code, not renderer)
        vec3_t modellight_ambient;
@@ -813,6 +818,10 @@ typedef struct particle_s
        float           delayedspawn; // time that particle appears and begins moving
        float           die; // time when this particle should be removed, regardless of alpha
 
+       // short variables grouped to save memory (4 bytes)
+       short                   angle; // base rotation of particle
+       short                   spin; // geometry rotation speed around the particle center normal
+
        // byte variables grouped to save memory (12 bytes)
        unsigned char   color[3];
        unsigned char   qualityreduction; // enables skipping of this particle according to r_refdef.view.qualityreduction
@@ -939,6 +948,7 @@ typedef struct client_state_s
        float sensitivityscale;
        csqc_vidvars_t csqc_vidvars;    //[515]: these parms must be set to true by default
        qboolean csqc_wantsmousemove;
+       qboolean csqc_paused; // vortex: int because could be flags
        struct model_s *csqc_model_precache[MAX_MODELS];
 
        // local amount for smoothing stepups
@@ -954,6 +964,9 @@ typedef struct client_state_s
        double lastongroundtime;
        double hitgroundtime;
 
+       // used by lean/follow view models
+       vec3_t viewmodel_lean, viewmodel_drag;
+
        // don't change view angle, full screen, etc
        int intermission;
        // latched at intermission start
@@ -1266,6 +1279,7 @@ extern cvar_t m_side;
 
 extern cvar_t cl_autodemo;
 extern cvar_t cl_autodemo_nameformat;
+extern cvar_t cl_autodemo_delete;
 
 extern cvar_t r_draweffects;
 
@@ -1278,6 +1292,7 @@ extern cvar_t cl_stainmaps;
 extern cvar_t cl_stainmaps_clearonload;
 
 extern cvar_t cl_prydoncursor;
+extern cvar_t cl_prydoncursor_notrace;
 
 extern cvar_t cl_locs_enable;
 
@@ -1423,7 +1438,7 @@ extern cvar_t cl_decals_fadetime;
 void CL_Particles_Clear(void);
 void CL_Particles_Init(void);
 void CL_Particles_Shutdown(void);
-particle_t *CL_NewParticle(const vec3_t sortorigin, unsigned short ptypeindex, int pcolor1, int pcolor2, int ptex, float psize, float psizeincrease, float palpha, float palphafade, float pgravity, float pbounce, float px, float py, float pz, float pvx, float pvy, float pvz, float pairfriction, float pliquidfriction, float originjitter, float velocityjitter, qboolean pqualityreduction, float lifetime, float stretch, pblend_t blendmode, porientation_t orientation, int staincolor1, int staincolor2, int staintex, float stainalpha, float stainsize);
+particle_t *CL_NewParticle(const vec3_t sortorigin, unsigned short ptypeindex, int pcolor1, int pcolor2, int ptex, float psize, float psizeincrease, float palpha, float palphafade, float pgravity, float pbounce, float px, float py, float pz, float pvx, float pvy, float pvz, float pairfriction, float pliquidfriction, float originjitter, float velocityjitter, qboolean pqualityreduction, float lifetime, float stretch, pblend_t blendmode, porientation_t orientation, int staincolor1, int staincolor2, int staintex, float stainalpha, float stainsize, float angle, float spin);
 
 typedef enum effectnameindex_s
 {
@@ -1516,6 +1531,10 @@ typedef struct r_refdef_stats_s
        int bloom;
        int bloom_copypixels;
        int bloom_drawpixels;
+       int indexbufferuploadcount;
+       int indexbufferuploadsize;
+       int vertexbufferuploadcount;
+       int vertexbufferuploadsize;
 }
 r_refdef_stats_t;
 
@@ -1725,6 +1744,15 @@ typedef struct r_refdef_s
        qboolean fogenabled;
        qboolean oldgl_fogenable;
 
+       // new flexible texture height fog (overrides normal fog)
+       char fog_height_texturename[64]; // note: must be 64 for the sscanf code
+       unsigned char *fog_height_table1d;
+       unsigned char *fog_height_table2d;
+       int fog_height_tablesize; // enable
+       float fog_height_tablescale;
+       float fog_height_texcoordscale;
+       char fogheighttexturename[64]; // detects changes to active fog height texture
+
        qboolean draw2dstage;
 
        // true during envmap command capture