]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
use dynamic eye position-centered bouncegrid when rendering in dynamic
[xonotic/darkplaces.git] / client.h
index 270db45bd603c4d1fd1cc463715a937b4516dd1c..b26d51985f27435f275bfdf1f1a86d797ac9f19f 100644 (file)
--- a/client.h
+++ b/client.h
@@ -89,6 +89,13 @@ typedef struct beam_s
 }
 beam_t;
 
+typedef struct rtlight_particle_s
+{
+       float origin[3];
+       float color[3];
+}
+rtlight_particle_t;
+
 typedef struct rtlight_s
 {
        // shadow volumes are done entirely in model space, so there are no matrices for dealing with them...  they just use the origin
@@ -202,6 +209,11 @@ typedef struct rtlight_s
        /// masks of all shadowmap sides that have any potential static receivers or casters
        int static_shadowmap_receivers;
        int static_shadowmap_casters;
+       /// particle-tracing cache for global illumination
+       int particlecache_numparticles;
+       int particlecache_maxparticles;
+       int particlecache_updateparticle;
+       rtlight_particle_t *particlecache_particles;
 }
 rtlight_t;
 
@@ -369,8 +381,7 @@ typedef struct entity_render_s
        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_meshbuffer_t *animcache_vertex3fbuffer;
        r_vertexmesh_t *animcache_vertexmesh;
        r_meshbuffer_t *animcache_vertexmeshbuffer;
 
@@ -387,6 +398,9 @@ typedef struct entity_render_s
        // FIELDS UPDATED BY RENDERER:
        // last time visible during trace culling
        double last_trace_visibility;
+
+       // user wavefunc parameters (from csqc)
+       float userwavefunc_param[Q3WAVEFUNC_USER_COUNT];
 }
 entity_render_t;
 
@@ -534,7 +548,7 @@ qw_downloadtype_t;
 typedef enum capturevideoformat_e
 {
        CAPTUREVIDEOFORMAT_AVI_I420,
-       CAPTUREVIDEOFORMAT_OGG_VORBIS_THEORA,
+       CAPTUREVIDEOFORMAT_OGG_VORBIS_THEORA
 }
 capturevideoformat_t;
 
@@ -707,8 +721,19 @@ typedef struct client_static_s
        // password spectator name team skin topcolor bottomcolor rate noaim msg *ver *ip
        char userinfo[MAX_USERINFO_STRING];
 
+       // extra user info for the "connect" command
+       char connect_userinfo[MAX_USERINFO_STRING];
+
        // video capture stuff
        capturevideostate_t capturevideo;
+
+       // crypto channel
+       crypto_t crypto;
+
+       // ProQuake compatibility stuff
+       int proquake_servermod; // 0 = not proquake, 1 = proquake
+       int proquake_serverversion; // actual proquake server version * 10 (3.40 = 34, etc)
+       int proquake_serverflags; // 0 (PQF_CHEATFREE not supported)
 }
 client_static_t;
 
@@ -974,6 +999,9 @@ typedef struct client_state_s
        qboolean oldonground;
        double lastongroundtime;
        double hitgroundtime;
+       float bob2_smooth;
+       float bobfall_speed;
+       float bobfall_swing;
 
        // don't change view angle, full screen, etc
        int intermission;
@@ -1194,6 +1222,7 @@ typedef struct client_state_s
        float movevars_airstrafeaccel_qw;
        float movevars_aircontrol;
        float movevars_aircontrol_power;
+       float movevars_aircontrol_penalty;
        float movevars_warsowbunny_airforwardaccel;
        float movevars_warsowbunny_accel;
        float movevars_warsowbunny_topspeed;
@@ -1327,7 +1356,7 @@ void CL_Locs_FindLocationName(char *buffer, size_t buffersize, vec3_t point);
 void CL_Shutdown (void);
 void CL_Init (void);
 
-void CL_EstablishConnection(const char *host);
+void CL_EstablishConnection(const char *host, int firstarg);
 
 void CL_Disconnect (void);
 void CL_Disconnect_f (void);
@@ -1535,14 +1564,21 @@ typedef struct r_refdef_stats_s
        int particles;
        int drawndecals;
        int totaldecals;
-       int meshes;
-       int meshes_elements;
+       int draws;
+       int draws_vertices;
+       int draws_elements;
        int lights;
        int lights_clears;
        int lights_scissored;
        int lights_lighttriangles;
        int lights_shadowtriangles;
        int lights_dynamicshadowtriangles;
+       int bouncegrid_lights;
+       int bouncegrid_particles;
+       int bouncegrid_traces;
+       int bouncegrid_hits;
+       int bouncegrid_splats;
+       int bouncegrid_bounces;
        int bloom;
        int bloom_copypixels;
        int bloom_drawpixels;
@@ -1550,6 +1586,8 @@ typedef struct r_refdef_stats_s
        int indexbufferuploadsize;
        int vertexbufferuploadcount;
        int vertexbufferuploadsize;
+       int framedatacurrent;
+       int framedatasize;
 }
 r_refdef_stats_t;
 
@@ -1768,7 +1806,7 @@ typedef struct r_refdef_s
        float fog_height_texcoordscale;
        char fogheighttexturename[64]; // detects changes to active fog height texture
 
-       qboolean draw2dstage;
+       int draw2dstage; // 0 = no, 1 = yes, other value = needs setting up again
 
        // true during envmap command capture
        qboolean envmap;