X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=client.h;h=17cce996a29216aa73ba9993e4771b58055584eb;hb=26e11a76c1f5cfbe0b7b8987c79ee3ff318979df;hp=cbc0fc02c1b3333bc16ce2881f452f8667016569;hpb=35a210359bf175b1798c62e196116a19b7181006;p=xonotic%2Fdarkplaces.git diff --git a/client.h b/client.h index cbc0fc02..17cce996 100644 --- a/client.h +++ b/client.h @@ -80,9 +80,6 @@ typedef enum r_stat_e r_stat_bufferdatasize_index16, r_stat_bufferdatasize_index32, r_stat_bufferdatasize_uniform, - r_stat_animcache_vertexmesh_count, - r_stat_animcache_vertexmesh_vertices, - r_stat_animcache_vertexmesh_maxvertices, r_stat_animcache_skeletal_count, r_stat_animcache_skeletal_bones, r_stat_animcache_skeletal_maxbones, @@ -161,10 +158,6 @@ typedef enum r_stat_e r_stat_batch_dynamic_surfaces_because_tcmod_turbulent, r_stat_batch_dynamic_vertices_because_tcmod_turbulent, r_stat_batch_dynamic_triangles_because_tcmod_turbulent, - r_stat_batch_dynamic_batches_because_interleavedarrays, - r_stat_batch_dynamic_surfaces_because_interleavedarrays, - r_stat_batch_dynamic_vertices_because_interleavedarrays, - r_stat_batch_dynamic_triangles_because_interleavedarrays, r_stat_batch_dynamic_batches_because_nogaps, r_stat_batch_dynamic_surfaces_because_nogaps, r_stat_batch_dynamic_vertices_because_nogaps, @@ -271,8 +264,6 @@ 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 - // note that the world to light matrices are inversely scaled (divided) by lightradius // core properties @@ -304,7 +295,7 @@ typedef struct rtlight_s int flags; // generated properties - /// used only for shadow volumes + /// used only for casting shadows vec3_t shadoworigin; /// culling vec3_t cullmins; @@ -360,9 +351,7 @@ typedef struct rtlight_s int shadowmapatlasposition[2]; /// size of one side of this light in the shadowmap atlas (for omnidirectional shadowmaps this is the min corner of a 2x3 arrangement, or a 4x3 arrangement in the case of noselfshadow entities being present) int shadowmapatlassidesize; - /// premade shadow volumes to render for world entity - shadowmesh_t *static_meshchain_shadow_zpass; - shadowmesh_t *static_meshchain_shadow_zfail; + /// optimized and culled mesh to render for world entity shadows shadowmesh_t *static_meshchain_shadow_shadowmap; /// used for visibility testing (more exact than bbox) int static_numleafs; @@ -562,10 +551,6 @@ typedef struct entity_render_s float *animcache_tvector3f; r_meshbuffer_t *animcache_tvector3f_vertexbuffer; int animcache_tvector3f_bufferoffset; - // interleaved arrays for rendering and dynamic vertex buffers for them - r_vertexmesh_t *animcache_vertexmesh; - r_meshbuffer_t *animcache_vertexmesh_vertexbuffer; - int animcache_vertexmesh_bufferoffset; // gpu-skinning shader needs transforms in a certain format, we have to // upload this to a uniform buffer for the shader to use, and also keep a // backup copy in system memory for the dynamic batch fallback code @@ -1815,6 +1800,12 @@ typedef struct r_refdef_view_s vec3_t frustumcorner[4]; // if turned off it renders an ortho view int useperspective; + // allows visibility culling based on the view origin (e.g. pvs and R_CanSeeBox) + // this is turned off by: + // r_trippy + // !r_refdef.view.useperspective + // (sometimes) r_refdef.view.useclipplane + int usevieworiginculling; float ortho_x, ortho_y; // screen area to render in @@ -1993,8 +1984,6 @@ typedef struct r_refdef_s // whether to draw world lights realtime, dlights realtime, and their shadows float polygonfactor; float polygonoffset; - float shadowpolygonfactor; - float shadowpolygonoffset; // how long R_RenderView took on the previous frame double lastdrawscreentime;