havoc [Wed, 29 Mar 2006 11:11:46 +0000 (11:11 +0000)]
eliminated model->meshlist, replaced with an embedded model->surfmesh to cut down on pointer indirections, this also eliminated surface->groupmesh
some minor optimizations of code to keep track of ent->model in a local variable rather than dereferencing ent every time
havoc [Wed, 29 Mar 2006 09:18:50 +0000 (09:18 +0000)]
no longer uses multiple meshes for model loading, they each use one mesh for all surfaces combined
now puts all q3bsp map geometry into one mesh at load rather than splitting it into 65536 vertex meshes to crutch up broken drivers (they've been fixed already so this is no longer necessary)
havoc [Tue, 28 Mar 2006 13:02:06 +0000 (13:02 +0000)]
modified gamma handling, now VID_UpdateGamma is only called from VID_Finish, and VID_SetGamma/VID_GetGamma/VID_UpdateGamma take rampsize parameters
VID_UpdateGamma now supports ramp sizes other than 256, and automatically allocates memory accordingly, this allows hardware gamma on X11 to work on Quadro cards (which report 1024 gamma entries according to div0), and allows any other platform to do whatever it wishes
havoc [Tue, 28 Mar 2006 10:17:21 +0000 (10:17 +0000)]
added loading of hmap2 .dlit tangentspace deluxemap files and a rather lame method of lightstyle support (blending the deluxemaps according to lightstyles, not rendering them separately like it should)
havoc [Sun, 26 Mar 2006 07:17:32 +0000 (07:17 +0000)]
added r_showsurfaces rendering mode which illustrates how many surfaces are on screen (and renders REALLY FAST)
moved r_showcollisionbrushes code to gl_rmain.c
havoc [Sun, 26 Mar 2006 06:43:50 +0000 (06:43 +0000)]
eliminated the hacky r_showtris code, now r_glsl 1 mode works with r_showtris
rewrote r_showtris and r_shownormals to use opaque lines that write to the depth buffer, this makes them show up quite clearly in all cases
moved r_showtris and r_shownormals code into R_DrawSurfaces
sajt [Sat, 25 Mar 2006 07:58:18 +0000 (07:58 +0000)]
cl_autodemo, when set to true, automatically records every game you play. The filename of the demo is determined by cl_autodemo_nameformat (UNIX time string) and the map name.
Note - I'm pretty sure this currently lumps all games played successively into one demo. Feel free to fix that :)
havoc [Thu, 23 Mar 2006 11:53:11 +0000 (11:53 +0000)]
changed several DPrint's and developer cvar checks to higher developer cvar levels (>= 10 and >= 100 for example), this makes developer 1 much more pleasant to use, also changed the memory clearing on free to depend on developer_memorydebug (which is already quite slow) rather than developer (which shouldn't slow things down much)
havoc [Thu, 23 Mar 2006 11:47:11 +0000 (11:47 +0000)]
fixed bug that made light filter cubemaps not work in GLSL mode (was binding a cubemap as a 2D texture... oops)
fixed bug that made sky brush entities not appear when not looking at sky brushes in the world (GL_DepthTest/GL_DepthMask were messed up)
havoc [Wed, 22 Mar 2006 05:22:21 +0000 (05:22 +0000)]
changed collision code to report supercontents, surfaceflags, and texture that was hit in a trace (even if it has to fake the information for q1bsp)
decals no longer stick to sky (except in stock id1 q1bsp maps which have CONTENTS_SOLID sky)
havoc [Tue, 21 Mar 2006 09:55:27 +0000 (09:55 +0000)]
fix a crash that could occur if resizing the resize buffer twice in one upload call, and also fix a bug where the player setup menu's translated player pic was being treated as a subimage update which doesn't work because that image is scaled up, not a natural power of 2
havoc [Tue, 21 Mar 2006 09:06:02 +0000 (09:06 +0000)]
removed detection of GL_NV_texture_shader extension which was previously used for the geforce3 water shader that was removed a long time ago
removed support for GL_DSDT_NV textures (which were only used for the geforce3 water shader)
removed code pertaining to GL_NV_vertex_array_range (which hasn't been supported for a very long time)
havoc [Tue, 21 Mar 2006 06:49:25 +0000 (06:49 +0000)]
modified Q1BSP loader to generate lightmap fragments on its own, rather than relying on the texture manager, this greatly shortens r_texturestats reports and reduces memory usage a bit (less gltexture_t structures), and modified R_UpdateTexture to be able to update fragments
havoc [Tue, 21 Mar 2006 05:49:29 +0000 (05:49 +0000)]
renamed varray_ arrays to rsurface_array_, and they are no longer used outside the surface rendering code, additionally they are now dynamically resized (saves a little memory)
audited a lot of memory allocations and fixed a few significant leaks
removed Host_ClearMemory as it was causing several memory leaks, and split cls.mempool into cls.levelmempool and cls.permanentmempool, cls.levelmempool is now emptied each level load (this also fixes those same leaks)
merged r_shadow_mempool into r_main_mempool
havoc [Tue, 21 Mar 2006 03:03:26 +0000 (03:03 +0000)]
removed the USETEXMATRIX define (now always on), reduced varray_texcoord3f to only have one array rather than 4 (as the others are no longer needed with USETEXMATRIX), removed varray_texcoord2f, removed earray_element3i
changed many simple uses of varray_* arrays to use stack arrays instead
this reduces memory usage by 1MB
havoc [Tue, 21 Mar 2006 02:23:27 +0000 (02:23 +0000)]
moved SCR_UpdateScreen and SCR_DrawScreen code to cl_screen.c and rearranged them somewhat
moved DrawQ_ functions to gl_draw.c and eliminated r_refdef.drawqueue (this saves some memory and makes all the 2D code more efficient)
disabled unused R_Mesh_CacheArray stuff in gl_backend.c
havoc [Mon, 20 Mar 2006 05:51:30 +0000 (05:51 +0000)]
cl_movement 0 should no longer be causing an input replay (which was slow and pointless), though I don't know how it was doing so before...
added code to prevent pogostick jumping in the cl_movement prediction (since the qc prevents pogostick jumping, it was inaccurate to simulate it clientside)
changed view/gun bobbing to use cl.movement_velocity for the xyspeed math, this greatly improves the clientside prediction
havoc [Sun, 19 Mar 2006 21:15:02 +0000 (21:15 +0000)]
fixed deluxemapping
added r_glsl_deluxemapping cvar (2 forces fake deluxemapping on any level, kind of interesting to see)
added modelspace deluxemapping (automatically detects whether deluxemaps are modelspace or tangentspace at load time)
changed offsetmapping shader to be more perspective correct
havoc [Sat, 18 Mar 2006 04:28:17 +0000 (04:28 +0000)]
reduced number of image extensions checked by doing more intelligent path examination, and changing q1bsp loader to prepend textures/, this allows it to not check any prefixes in the image loader itself (except in a few cases in nexuiz)
changed image loader to not check override/ unless running GAME_TENEBRAE
removed several unused image functions
havoc [Fri, 17 Mar 2006 06:33:11 +0000 (06:33 +0000)]
added GLSL shader path for normal rendering stage, reworked a lot of things to do this
removed .lights file loading and the corresponding directional model shading (these were only produced by hlight for q1bsp, very rare files) so that the GLSL normal rendering stage would not have to deal with .lights files
changed R_CompleteLightPoint to properly match rtlight shading, not the old dlights, this allowed removal of the old lightmap_* rtlight fields
havoc [Wed, 15 Mar 2006 13:19:36 +0000 (13:19 +0000)]
cleaning up GLSL code
moved GLSL shader setup to gl_rmain.c and made it more general, not specifically lighting shaders
cache locations of GLSL shader variables for faster access (instead of looking them up every time it renders something)
GLSL shader reworked to support deluxemap rendering and lightmap rendering, to be used in the future
merged glsl/light.frag and glsl/light.vert into glsl/default.glsl using VERTEX_SHADER and FRAGMENT_SHADER defines to differentiate parts of it
havoc [Wed, 15 Mar 2006 07:02:56 +0000 (07:02 +0000)]
moved many cl_ prefixed variables into cl. or cls.
made most menu functions static
removed WORKINGLQUAKE support from cl_particles.c and moved particle allocation to cl_main.c (where all the other arrays are allocated)
renamed cl_activevideos to cl_num_videos and videoarray to cl_videos (did not move these into cls. however)
havoc [Sat, 11 Mar 2006 18:28:00 +0000 (18:28 +0000)]
refactored _Mem_Free into _Mem_FreeBlock which takes a memheader_t * and _Mem_Free which converts a void * to the content area of the memory, to a memheader_t * and calls _Mem_FreeBlock - now _Mem_FreePool and _Mem_EmptyPool can call that directly, which avoids a Mem_IsAllocated error that I don't understand