]> 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 6c3f46ac2b7ccc59dc4e360f136556cc4e229d33..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];
@@ -634,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;
 
@@ -642,7 +651,8 @@ typedef enum
 {
        PBLEND_ALPHA = 0,
        PBLEND_ADD = 1,
-       PBLEND_MOD = 2
+       PBLEND_INVMOD = 2,
+       PBLEND_INVALID = -1
 }
 pblend_t;
 
@@ -684,8 +694,10 @@ 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;
@@ -1480,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