X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=client.h;h=38cf7b84117a21f5fb84fa045627023f4930329c;hb=07e09cc609d836ae7f2705d19bcb4f56137ec10c;hp=ceb699a5c598d39e270a124e7d82f3654b580250;hpb=74f678aada02d38886471dc02b609836f95e022e;p=xonotic%2Fdarkplaces.git diff --git a/client.h b/client.h index ceb699a5..38cf7b84 100644 --- a/client.h +++ b/client.h @@ -143,6 +143,29 @@ typedef struct rtlight_s unsigned int corona_queryindex_allpixels; /// this is R_Shadow_Cubemap(rtlight->cubemapname) rtexture_t *currentcubemap; + /// set by R_Shadow_PrepareLight to decide whether R_Shadow_DrawLight should draw it + qboolean draw; + /// these fields are set by R_Shadow_PrepareLight for later drawing + int cached_numlightentities; + int cached_numlightentities_noselfshadow; + int cached_numshadowentities; + int cached_numshadowentities_noselfshadow; + int cached_numsurfaces; + struct entity_render_s **cached_lightentities; + struct entity_render_s **cached_lightentities_noselfshadow; + struct entity_render_s **cached_shadowentities; + struct entity_render_s **cached_shadowentities_noselfshadow; + unsigned char *cached_shadowtrispvs; + unsigned char *cached_lighttrispvs; + int *cached_surfacelist; + // reduced light cullbox from GetLightInfo + vec3_t cached_cullmins; + vec3_t cached_cullmaxs; + // current shadow-caster culling planes based on view + // (any geometry outside these planes can not contribute to the visible + // shadows in any way, and thus can be culled safely) + int cached_numfrustumplanes; + mplane_t cached_frustumplanes[5]; // see R_Shadow_ComputeShadowCasterCullingPlanes /// static light info /// true if this light should be compiled as a static light @@ -336,9 +359,15 @@ typedef struct entity_render_s vec3_t mins, maxs; // subframe numbers (-1 if not used) and their blending scalers (0-1), if interpolation is not desired, use subframeblend[0].subframe frameblend_t frameblend[MAX_FRAMEBLENDS]; + // skeletal animation data (if skeleton.relativetransforms is not NULL, it overrides frameblend) + skeleton_t *skeleton; - // animation cache index - int animcacheindex; + // animation cache (pointers allocated using R_FrameData_Alloc) + // ONLY valid during R_RenderView! may be NULL (not cached) + float *animcache_vertex3f; + float *animcache_normal3f; + float *animcache_svector3f; + float *animcache_tvector3f; // current lighting from map (updated ONLY by client code, not renderer) vec3_t modellight_ambient; @@ -449,6 +478,7 @@ typedef struct scoreboard_s float qw_entertime; int qw_ping; int qw_packetloss; + int qw_movementloss; int qw_spectator; char qw_team[8]; char qw_skin[MAX_QPATH]; @@ -1490,7 +1520,7 @@ r_viewport_type_t; typedef struct r_viewport_s { - double m[16]; + float m[16]; matrix4x4_t cameramatrix; // from entity (transforms from camera entity to world) matrix4x4_t viewmatrix; // actual matrix for rendering (transforms to viewspace) matrix4x4_t projectmatrix; // actual projection matrix (transforms from viewspace to screen) @@ -1501,6 +1531,7 @@ typedef struct r_viewport_s int height; int depth; r_viewport_type_t type; + float screentodepth[2]; // used by deferred renderer to calculate linear depth from device depth coordinates } r_viewport_t;