]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - client.h
early steps toward support for persistent caching of dlight shadows
[xonotic/darkplaces.git] / client.h
index d5da4864e119468300dae4dbf94d952f90f34468..4c52a6322cf95e89c5d97494bf9a3541035af18d 100644 (file)
--- a/client.h
+++ b/client.h
@@ -109,6 +109,10 @@ typedef struct rtlight_s
        // rendering properties, updated each time a light is rendered
        // this is rtlight->color * d_lightstylevalue
        vec3_t currentcolor;
+       // used by corona updates, due to occlusion query
+       float corona_visibility;
+       unsigned int corona_queryindex_visiblepixels;
+       unsigned int corona_queryindex_allpixels;
        // this is R_Shadow_Cubemap(rtlight->cubemapname)
        rtexture_t *currentcubemap;
 
@@ -461,10 +465,12 @@ typedef struct capturevideostate_s
        fs_offset_t videofile_ix_master_video_inuse_offset;
        fs_offset_t videofile_ix_master_video_start_offset;
        fs_offset_t videofile_ix_movistart;
+       fs_offset_t position;
        qfile_t *videofile;
        qboolean active;
        qboolean realtime;
        qboolean error;
+       qboolean canseek;
        capturevideoformat_t format;
        int soundrate;
        int frame;
@@ -477,6 +483,8 @@ typedef struct capturevideostate_s
        sizebuf_t riffindexbuffer;
        int riffstacklevel;
        fs_offset_t riffstackstartoffset[4];
+       fs_offset_t riffstacksizehint[4];
+       const char *riffstackfourcc[4];
        short rgbtoyuvscaletable[3][3][256];
        unsigned char yuvnormalizetable[3][256];
        char basename[64];
@@ -589,6 +597,7 @@ typedef struct client_static_s
        double qw_downloadspeedtime;
        int qw_downloadspeedcount;
        int qw_downloadspeedrate;
+       qboolean qw_download_deflate;
 
        // current file upload buffer (for uploading screenshots to server)
        unsigned char *qw_uploaddata;
@@ -633,7 +642,8 @@ typedef enum
        PARTICLE_BILLBOARD = 0,
        PARTICLE_SPARK = 1,
        PARTICLE_ORIENTED_DOUBLESIDED = 2,
-       PARTICLE_BEAM = 3
+       PARTICLE_BEAM = 3,
+       PARTICLE_INVALID = -1
 }
 porientation_t;
 
@@ -641,7 +651,8 @@ typedef enum
 {
        PBLEND_ALPHA = 0,
        PBLEND_ADD = 1,
-       PBLEND_MOD = 2
+       PBLEND_INVMOD = 2,
+       PBLEND_INVALID = -1
 }
 pblend_t;
 
@@ -683,14 +694,17 @@ decal_t;
 typedef struct particle_s
 {
        // fields used by rendering: (40 bytes)
-       unsigned short  typeindex;
-       unsigned short  texnum;
+       unsigned char   typeindex;
+       pblend_t   blendmode;
+       porientation_t   orientation;
+       unsigned char   texnum;
        vec3_t                  org;
        vec3_t                  vel; // velocity of particle, or orientation of decal, or end point of beam
        float                   size;
        float                   alpha; // 0-255
        unsigned char   color[3];
        unsigned char   qualityreduction; // enables skipping of this particle according to r_refdef.view.qualityreduction
+       float           stretch; // only for sparks
 
        // fields not used by rendering:  (40 bytes)
        float                   sizeincrease; // rate of size change per second
@@ -1478,7 +1492,8 @@ typedef struct r_refdef_scene_s {
        int maxtempentities;
 
        // renderable dynamic lights
-       rtlight_t lights[MAX_DLIGHTS];
+       rtlight_t *lights[MAX_DLIGHTS];
+       rtlight_t templights[MAX_DLIGHTS];
        int numlights;
 
        // intensities for light styles right now, controls rtlights