Commit Graph

1276 Commits

Author SHA1 Message Date
svdijk 6ec776bad5 gl_rmain.c: make gl_zfix default to 0, no longer save it to config.cfg
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@990 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-07 19:35:52 +00:00
svdijk 70a0884752 quakespasm.pak: add several .ent files to prevent z-fighting
fixed so far:
e1m1: quad secret elevator (when down)
e1m2: exit doors (when open)
e2m3: rockets secret doors (when open)
e2m7: bars in front of the exit doors (when raised)



git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@989 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-07 19:33:38 +00:00
svdijk 049e34a3f6 common.c: make plain files overrule files inside a PAK file
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@988 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-07 12:32:27 +00:00
ewasylishen 5e8102e1e6 SDL2 support, if USE_SDL2 defined.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@987 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-05 19:34:43 +00:00
sezero 7a762fbb66 restore compilability with g++. some whitespace tidy-ups.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@986 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-02 05:40:41 +00:00
ewasylishen a166d40de2 PF_VarString: raise buffer size to 1024. I checked all buffers that the resulting string could end up in, and they're all at least 1024 bytes (even with an unmodified quake client).
PF_VarString is only called on the server, in:
- PF_error, PF_objerror, PF_dprint to print error / debugging messages
- PF_bprint, which calls SV_BroadcastPrintf which copies the string into a 1024-byte buffer, then sends that to clients in a svc_print message
- PF_sprint, which sends the string in a svc_print message using MSG_WriteString (without copying into an intermediate buffer)
- PF_centerprint, which sends the return value of PF_VarString in a svc_centerprint message (without copying into an intermediate buffer)

On the client:
- svc_print reads the payload string with MSG_ReadString (2048-byte buffer), then Con_Printf is called (4096-byte buffer)
- svc_centerprint uses MSG_ReadString then calls SCR_CenterPrint (1024-byte buffer)

I also checked the original quake source and the client-side buffers for MSG_ReadString, Con_Printf, and SCR_CenterPrint are all the same sizes as in QS.

Admittedly I want to support sock's ITS mod, but as far as I can see, it's a totally safe to increase this to 1024.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@985 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-01 07:30:23 +00:00
sezero b408ccf949 dropped support for GL_SGIS_multitexture
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@984 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 08:00:34 +00:00
ewasylishen 75723a3f7b Revert r981 "Simple use of vertex arrays in R_DrawTextureChains_Multitexture."
It caused a dramatic slowdown on my machine on windows (50% slower)

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@983 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 06:30:49 +00:00
ewasylishen 516271e393 Silence warning about vid_fsaa requiring restart when parsing config.cfg at startup. Add missing newline to warning message.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@982 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 03:22:36 +00:00
ewasylishen 63b813cb06 Simple use of vertex arrays in R_DrawTextureChains_Multitexture.
The glBegin(GL_POLYGON), for() loop with GL_MTexCoord2fFunc()/glVertex3fv() calls, and glEnd () per polygon is replaced by a memcpy() and a glDrawArrays() call per poly.

My guess is this only saves function call overhead, but it gives a decent ~20% speedup (36 -> 42fps) on my machine on orl’s map.

Note: glDrawArrays() is in OpenGL 1.1, but the glClientActiveTextureARB function is part of the GL_ARB_multitexture extension but not GL_SGIS_multitexture. Instead of splitting into two code paths, I just dropped support for GL_SGIS_multitexture.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@981 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-30 03:22:26 +00:00
sezero 9e8e99e858 update README files to reflect further 0.85.10 changes so far.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@980 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-29 08:55:19 +00:00
ewasylishen 65db1b5a32 Remove R_DrawSequentialPoly and use texture chains for drawing brush models.
To make this work with the drawing order we use in gl_rmain (world excluding water, opaque ents, world water, transparent ents), I made each texture_t have two texture chains, one for world and one for bmodels. This way they can be cleared during entity drawing without having to regenerate the world ones.

Other than this the changes are mostly minor adjustments to the R_DrawTextureChains_* functions so they can work for things other than the world.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@979 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-29 08:27:22 +00:00
ewasylishen 97e9b4e473 Revert r968, optimization in R_DrawSequentialPoly. Going to try a deeper change that uses the world drawing code for bmodels.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@978 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-29 08:27:16 +00:00
sezero 63761bad8f update README files to reflect further 0.85.10 changes so far.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@977 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-27 09:15:58 +00:00
ewasylishen 9eda6a4c7d Apply Baker's fix for cross-map demo playback (http://forums.inside3d.com/viewtopic.php?f=3&t=2397).
With that alone, the console would come down and slide up when the map changes in a demo.
I added a SCR_BeginLoadingPlaque() call in CL_ParseServerInfo, only done during demo playback, which shows the loading plaque and prevents the console from appearing and sliding up.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@976 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-25 02:55:25 +00:00
ewasylishen 3f50c55d3a Revert Pa3PyX support for cross-map demos
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@975 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-25 02:55:16 +00:00
ewasylishen b517b3d4fc cl_parse.c: hack so demos playback at the correct speed even if they contain a lot of svc_stufftext messages (e.g. one every frame).
for a test case, play a demo from: http://www.quaketastic.com/upload/files/demos/otp_honey100.zip
for the honey map pack: http://www.quaketastic.com/upload/files/single_player/maps/honey.zip
on a slow pc that gets signifigantly less than 72fps, or with host_maxfps lowered (e.g. set to 33).

with QS 0.85.9, the demo will play in slow-motion; with QS 0.85.6 (without the cross-map demo support) it plays normally.

admittedly this is a fringe scenario, but it's imo a legitimate bug in the Pa3PyX cross-map demo playback code.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@974 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-24 18:37:28 +00:00
stevenaaus cb024b2ed5 Add links to Erics automatic win builds. (I'll also update the webpage).
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@973 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-22 21:52:34 +00:00
ewasylishen 573c876d0f Fence textures: also support on world polys. From Fitzquake Mark V
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@972 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-22 01:10:58 +00:00
sezero 024abc5d82 set executable property on mkpak.sh
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@971 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-20 09:20:03 +00:00
ewasylishen 1afac37661 Fence texture support on brush models, e.g. for rmqdemo2 e1m6rq.bsp. Based on Baker's implementation in Fitz Mark V. Consistent with Fitz Mark V, RMQEngine, FTEQW rendering.
Not implemented for world polys (afaik it's useless for world polys) but could be added if needed.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@970 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-19 02:20:12 +00:00
ewasylishen 3cb4226ddc Change Cvar_Cycle_f to use Q_atof to be consistent with other cvar code. Q_atof("0.3"), a float, does not == atof("0.3"), a double.
Fixes "cycle r_wateralpha 0.3 0.6 1" not working reported by AAS.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@969 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-18 17:12:39 +00:00
ewasylishen 6e48bea4d9 r_brush.c: small optimization in R_DrawSequentialPoly; move the drawing of fullbrights to a separate function, and draw them in a separate pass through the polys of the brush mode. This reduces the amount of texture binding. The extreme case would be, e.g. 1000 polys with one texture (with fullbrights), before would require 2000 binds, after would require 2 binds. This gets part way to the performance of https://sourceforge.net/p/quakespasm/patches/14/ with much less code change
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@968 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-17 21:12:54 +00:00
ewasylishen 4f6b138921 Raise MAX_ENT_LEAFS from 16 to 32, fixes disappearing/flickering bmodels in some situations. In particular fixes an elevator in fort_driant-fullvis.bsp, and a grate (func_door) in jam1_ionous.bsp.
From what I understand, if an entity touches more than MAX_ENT_LEAFS, it will only be visible
if the player happens to be standing in one of the first 'MAX_ENT_LEAFS' (so essentially random).

See discussion of MAX_ENT_LEAFS here:
http://celephais.net/board/view_thread.php?id=60310

For more detail (mh has an alternate fix, used in DirectQ/RMQEngine, haven't looked in to what he did):
http://forums.inside3d.com/viewtopic.php?t=2376&postdays=0&postorder=asc&start=23

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@967 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-13 06:40:07 +00:00
ewasylishen fff78c696a new fsaa support patch. commandline flag is -fsaa, cvar is vid_fsaa. cvar is only read in VID_Init, changing it prints a message that the new value will only be used upon restart
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@966 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-12 19:39:20 +00:00
ewasylishen 34bc355f9e revert r962 and r963 (first attempt at multisampling)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@965 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-12 19:25:14 +00:00
svdijk e6c61b562b Add a Bourne Shell PAK file writer (remove qpakman dependency).
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@964 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-11 19:59:52 +00:00
ewasylishen faf85380af cleanup fsaa patch, from szo. removes sdl version checks because qs requires sdl >= 1.2.10
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@963 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-11 08:08:15 +00:00
ewasylishen 53c7b3a1e8 fsaa support, borrowing from uhexen2. cvar is vid_multisample, cmdline arg is -fsaa (inconsistent..)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@962 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-11 06:58:42 +00:00
sezero 0e53d9edfd fix broken libFLAC builds from previous commit.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@961 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-10 11:00:26 +00:00
sezero 4aed68b149 recompile libflac and libmodplug (again.)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@960 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-10 07:47:33 +00:00
ewasylishen c5690fbb78 bump MAX_EFRAGS to 4096 (from 2048) and MAX_CHANNELS to 1024 (from 512). For ijed's map - has over 500 ambient sounds, causing it to hit the channel limit, and a lot of static entities, which I guess cause it to exceed the old efrags limit. For future reference, according to mh, the efrags array can be removed entirely in glquake (http://forums.inside3d.com/viewtopic.php?t=1930) and each efrag allocated in the hunk memory.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@959 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-10 03:33:59 +00:00
ewasylishen 77b3403561 sv_aim: change default to 1 (autoaim off) and CVAR_NONE
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@958 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-07 18:47:37 +00:00
ewasylishen 55bb3124c4 Image_LoadImage: read pixel data in 1K chunks instead of calling getc in a loop
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@957 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 20:41:47 +00:00
ewasylishen accee1263e AllocBlock: cache index of last used lightmap, start search there
Can speed up map loading by multiple seconds on levels with a lot of lightmaps, at a cost of using slightly more lightmaps (about 5% more).

https://sourceforge.net/p/quakespasm/patches/20/


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@956 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 18:22:58 +00:00
sezero 7a02718fb9 cd_sdl: add back the informative message (was accidentally reverted in r953.)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@955 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 18:20:29 +00:00
sezero d868716c4e ... apply a CD device stops workaround only for linux for now.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@954 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 17:45:22 +00:00
sezero c89e61cc0d revert the all-platforms form of CD device stops workaround from r948/r949 ...
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@953 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 17:43:45 +00:00
ewasylishen 0fe09138e0 sfx lowpass filter patch
cvar changes:

The "sndspeed" cvar / "-sndspeed" command-line option now control whether the low-pass filter is applied. If it's set to 11025 you get the low-pass filter, otherwise it's not used.

New "snd_mixspeed" cvar (and the "-mixspeed" command-line option); these default to 44100 and just control the sample rate we request from SDL. Not archived.

New “snd_filterquality” cvar, value can be 1-5. Not archived. The “5” setting closely matches the Windows resampler, and the “1” setting closely matches the OS X resampler. The default depends on the OS, “5” is used on windows builds, otherwise “1”, because I wanted the sfx to sound the same as they do with 0.85.9 on each platform. TODO is checking if a setting other than 1 sounds closer to the system resampler on linux (though it probably depends on the distro).

The lowpass filter is only used for sndspeed=11025 and snd_mixspeed=44100, though these are the defaults.


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@952 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-05 05:40:34 +00:00
sezero 71c17d7e89 cd_sdl: prev and next commands must handle data tracks properly.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@951 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-04 21:20:09 +00:00
stevenaaus cebc9431a6 'cd next', 'cd prev' commands. 'cd play' plays track 1.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@950 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-04 00:08:22 +00:00
sezero 797b3bd0f8 minor cd_sdl cleanup after r948
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@949 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-02 11:00:09 +00:00
stevenaaus 542d5fa7af Work around some CD device stops. Oz - 'CDROMSTOP ioctl causes any ioctls following immediately to fail for a considerable time'.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@948 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-02 07:51:24 +00:00
sezero 96b54ac281 remove dirent stuff from msvc project after r946.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@947 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-01 11:25:11 +00:00
sezero 7607413752 - ExtraMaps_Init: instead strstr(), directly compare the file extension bsp.
- Modlist_Init: cleanup: instead strstr(), compare the file extension pak.
 no need extra checking for "." and ".." in the inner while loop. break out
 of the inner while loop as soon as a pak file or progs.dat is found.

- ExtraMaps_Init, Modlist_Init, windows: instead of using dirent emulation,
 use windows' native FindFirstFile/FindNextFile/FindClose directly. adapted
 from fitzquake-0.85.


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@946 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-08-01 11:21:54 +00:00
sezero 55a53448bd git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@945 af15c1b1-3010-417e-b628-4374ebc0bcbd 2014-08-01 11:15:58 +00:00
sezero 87ea0aa428 update README files to reflect further 0.85.10 changes so far.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@944 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-07-30 11:15:17 +00:00
sezero 0e61048c3a remove unused var
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@943 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-07-30 09:45:07 +00:00
sezero 03d4fbd008 reset all models and set mod_numknown to 0 upon gamedir changes.
fixes issue described at:
http://celephais.net/board/view_thread.php?id=60452&start=825
also see http://forums.inside3d.com/viewtopic.php?f=12&t=5509


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@942 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-07-30 09:33:03 +00:00
sezero d0c12c25e0 Host_Game_f: fix broken behavion if -gamedir is specified. (use com_basedir, not host_parms->basedir)
Modlist_Init: no need for -basedir check, just use com_basedir


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@941 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-07-30 09:02:25 +00:00