black [Thu, 29 Nov 2007 20:45:19 +0000 (20:45 +0000)]
Add TEXF_PERSISTENT and R_PurgeTexture which only frees textures if that flag isn't set. Changed the SkinFrame purging code accordingly (and the default texture creation calls).
Fixed a bug that caused dynamic textures not to survive map switches (LoadExternal would try to load pixel data because ->base was set to NULL - it now restores the pointer in SkinFrame_Find..)
havoc [Wed, 28 Nov 2007 10:57:12 +0000 (10:57 +0000)]
small optimization to use of texture_t->currenttexmatrix (no longer
setting it to identitymatrix when there are no tcmods, because
uninitialized matrices are optimized more in the backend than identity)
havoc [Wed, 28 Nov 2007 05:22:48 +0000 (05:22 +0000)]
changed texture formats from RGBA to BGRA, yes this is a massive change,
aimed solely at reducing load times, but it failed at that.
this contains several cleanups, and shouldn't reduce performance on any
hardware, so it still goes in.
black [Tue, 27 Nov 2007 22:26:56 +0000 (22:26 +0000)]
Rework cl_video to use dyntextures.
Add cl_gecko (needs SUPPORT_GECKO to be activated).
Fix r_replacemaptexture and make it use matchpattern to replace multiple textures at once.
havoc [Mon, 26 Nov 2007 22:05:56 +0000 (22:05 +0000)]
added support for TEXTYPE_BGRA (GL_BGRA format), this doesn't require
any difference in processing functions, but the initial data must be
encoded accordingly
this format was added because it uploads faster on some hardware, and
the engine will be migrating over to using it
havoc [Mon, 26 Nov 2007 21:54:11 +0000 (21:54 +0000)]
removed support for TEXTYPE_RGB
renamed Image_Resample to Image_Resample32 and removed bpp param
renamed Image_MipReduce to Image_MipReduce32 and removed bpp param
changed q3bsp lightmap loader to convert to 32bit before upload
black [Fri, 23 Nov 2007 00:26:10 +0000 (00:26 +0000)]
Add cl_dyntexture.h and .c (don't need to be added to the makefile or vc project yet). They expose a simple interface to manage dynamic textures.
It supports getting the current texture handle for a dynamic texture path, linking a dynamic texture path to a texture handle and unlinking a dynamic texture path.
This is pretty transparent and it could be used for arbitrary dynamic textures (even ones that aren't updated but only linked dynamically into the game world - alias texture names).
This works for both skinframes and cachepics. Still contains lots of todos.
black [Thu, 22 Nov 2007 00:06:00 +0000 (00:06 +0000)]
Add support for dynamic textures to the low-level texture handler.
Use R_MakeTextureDynamic to make a standard texture dynamic and set its update callback, etc. and use R_MarkDirtyTexture to mark it dirty (ie. needs an update as soon as it is used again).
havoc [Tue, 20 Nov 2007 23:04:41 +0000 (23:04 +0000)]
don't call lightning beam vertex fogging code BEFORE the vertex data is
initialized (this was causing crashes due to highly bogus numbers)
this bug came from refactoring the lightning beam code to be able to
render multiple beams in one transparent callback
havoc [Tue, 20 Nov 2007 20:43:35 +0000 (20:43 +0000)]
changed FogPoint_World/Model code to use unsigned int instead of signed
int, this fixes a crash reported by Andreas Dehmel in certain quoth
maps, I have no idea how coordinates can be negative though
havoc [Sun, 18 Nov 2007 13:51:18 +0000 (13:51 +0000)]
fix bug with loading a saved game while a demo is playing (such as the
demo loop when Quake starts up), thanks to Bill Pickett for giving a
clear and concise description of the problem
havoc [Tue, 13 Nov 2007 15:30:55 +0000 (15:30 +0000)]
changed default value of cl_stainmaps to 0 (was 1)
changed default values of cl_decals to 1 (was 0), cl_decals_time to 20 (was 0), and
cl_decals_fadetime to 1 (was 20)
havoc [Tue, 13 Nov 2007 15:28:54 +0000 (15:28 +0000)]
added separate world surfaces and world triangles stats counters for
r_speeds display, cleaned up some incorrect stat increments
split particle system into particles and decals, this got a nice speed
gain due to smaller structs involved
increased blood alpha substantially
divverent [Mon, 12 Nov 2007 14:28:40 +0000 (14:28 +0000)]
move two #defined to quakedef.h, and always include quakedef.h first before any other includes, even system headers. This is to make compilation with gcc -combine work. Also, fix some type mismatches between source files.
havoc [Mon, 12 Nov 2007 10:45:37 +0000 (10:45 +0000)]
added a non-diffuse non-specular path for model lighting in the GLSL
shader, this fixes a bug that caused the engine to generate normals and
tangents for every model in q1bsp maps unnecessarily because of an
incorrect need for a normalmap
havoc [Fri, 9 Nov 2007 21:19:17 +0000 (21:19 +0000)]
increased minimum cl_maxfps value from 1 to 5 (but removed the value
changing code)
implemented minimum cl_maxidlefps value of 5
tweaked code that snaps very small or negative values of slowmo to 0
divverent [Fri, 9 Nov 2007 15:03:13 +0000 (15:03 +0000)]
add new console command "fixtrans", usage: fixtrans gfx/foo.tga - writes a new fixtrans/gfx/foo.tga with alpha-zero pixels changed to values around them. Helps with weird seams on badly made transparent images.
divverent [Fri, 9 Nov 2007 13:33:44 +0000 (13:33 +0000)]
add cvar cl_movement_track_canjump (when off, client prediction allows "pogoing" by holding the jump key all the time; this also seems to behave better than the current behaviour which too often sticks you to the floor)
divverent [Fri, 9 Nov 2007 13:25:10 +0000 (13:25 +0000)]
(Nexuiz) show people who are still downloading as -666 (like spectators) in scoreboard. Should get replaced by some way to completely hide them from scoreboard, but still show them in status, ping etc.
black [Thu, 8 Nov 2007 20:23:50 +0000 (20:23 +0000)]
- add support for server list refreshes to netconn (more refactoring will follow soon)
- change MQC's refreshserverlist builtin to refresh the serverlist by default (which actually does what the function name implies)
- also add a console command but it is kinda useless (except that it is probably faster because it doesnt wait for the master server's response to start querying)
havoc [Tue, 30 Oct 2007 17:27:19 +0000 (17:27 +0000)]
some reworking and cleanup of gravity handling in particles, this fixes
a bug with blood rarely sticking to surfaces (due to delayedcollisions),
the same bug also affected gib trails but was less noticable
divverent [Sat, 27 Oct 2007 10:59:44 +0000 (10:59 +0000)]
new menu QC builtin "stringwidth(string text, float handleColors)", does not do anything useful yet, but added for future expansion (variable width fonts); also add this to CSQC (see TODO in clvm_cmds.c)
havoc [Sun, 21 Oct 2007 11:21:47 +0000 (11:21 +0000)]
reverted the cleanup of entity state building because it was sapping
massive amounts of performance even with only 16 players, now it once
again builds them only once per frame and filters them per client
havoc [Thu, 18 Oct 2007 07:09:15 +0000 (07:09 +0000)]
fixed a bug in multiplayer savegame loading that caused all players
after the first one to respawn immediately after loading
(sv.loadgame and sv.paused were being cleared by the first player)
havoc [Wed, 17 Oct 2007 04:51:47 +0000 (04:51 +0000)]
implemented a fixed function fallback for water, but it is disabled
because of extreme distortion artifacts (it would need to use a cubemap
for perspective correction)
implemented two-pass rendering of water and refraction surfaces, this
enables blendfunc of the first layer to work properly, the old path is
still present but disabled
havoc [Mon, 15 Oct 2007 12:07:28 +0000 (12:07 +0000)]
implemented MATERIALFLAG_REFRACTION
changed syntax of dp_refract, dp_reflect, added dp_water
moved SHADERPERMUTATION and friends to gl_rmain.c
eliminated SHADERPERMUTATION_MASK by separating out SHADERTYPE_USES
other cleanup