Commit graph

1212 commits

Author SHA1 Message Date
svdijk
775a688c3c gl_vidsdl.c: Minor VID_Toggle() fast path optimization.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1026 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-13 01:48:24 +00:00
svdijk
e3279142e9 net_sdlnet.c: Silence an assigned-but-not-used compiler warning.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1025 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-13 01:42:25 +00:00
svdijk
eede0be6be input: Some cleanup regarding the special treatment of '`' and '~' in the console.
This was hardcoded in in_sdl.c, now it is handled by Char_Console() itself, like it is in Key_Event().


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1024 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-13 01:34:02 +00:00
svdijk
efb1a35e3e in_sdl: SDL1: don't send '`' or '~' to the console.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1023 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-12 21:01:28 +00:00
svdijk
718ebfb9ff input: remove the USE_SDL2 check from keys.c.
Instead, make the backend responsible for calling either or both
of Key_Event and Char_Event under the appropriate circumstances.
For SDL2 this means no change, for SDL1 this means call both when
a key is pressed, but call only Key_Event when a key is released.



git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1022 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-12 20:37:05 +00:00
svdijk
157f883cc1 keys.c: K_BACKSPACE (127) is a non printable character.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1021 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-12 20:23:20 +00:00
ewasylishen
9f2271278e Revamp SDL2 key handling, based on how ioquake3 does it.
- Reverted the addition of the interpret_shift param to Key_Event
- Now, SDL_KEYUP/SDL_KEYDOWN are converted from SDL scancodes to quake keys, and passed directly to Key_Event with no extra conditions / logic
- When SDL2 is used, Key_Console/Key_Message no longer convert keys to characters to insert in the typing buffer, but all other functionality is unchanged
- SDL_TEXTINPUT calls a new function, Char_Event. This calls either Char_Console/Char_Message depending on the keydest. These just insert the typed text into the buffer

This is cleaner than before because it maintains a clear separation between key presses and characters, whereas the old code was converting characters from SDL_TEXTINPUT back into fake keys and then feeding those into Key_Event. This also fixes Ctrl+C / Ctrl+V not working in the console

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1020 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-12 04:27:54 +00:00
svdijk
573c01174b Makefile[.*]: SDL2 build support. 'make USE_SDL2=1' to enable.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1019 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-11 18:47:07 +00:00
ewasylishen
9524b80f79 Load world and brush models into a VBO, and draw it in batches in R_DrawTextureChains_Multitexture. Uses the same immediate mode code as before if VBOs are not available, or if "-novbo" used at the command line. I only touched R_DrawTextureChains_Multitexture because it's usually the main bottleneck aside from alias model rendering.
This seems to help fps a fair bit on maps with a lot of world polys like jam2_tronyn. Tried on a few computers with intel and nvidia gpus, windows, mac os, linux, and there's always at least some fps improvement. Best case was 70fps -> 96fps on jam2_tronyn, on OS X + nvidia 650gt.

Interested to hear how this works for amd gpu's, just do a timedemo with and without "-novbo".

Only downside is I had to disable the fast path in Vid_Toggle_f() because at least with SDL1, the vbo no longer works after a toggle. So as a result, fullscreen toggles with alt-enter are slightly slower.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1018 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-11 04:55:16 +00:00
svdijk
389737196f Add some missing SDL2 includes when not using sdl2-config.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1017 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-10 17:41:34 +00:00
sezero
2f8904b379 use getcwd() or some equivalent for host_parms->basedir instead of '.' (from uhexen2)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1016 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-10 09:51:35 +00:00
sezero
bbd53f0dc3 add missing header
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1015 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-10 09:47:34 +00:00
sezero
7c3d1234a5 update docs after r1013
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1014 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-10 07:40:58 +00:00
sezero
79162a9839 applied the user directories support patch, disabled by default. 'make DO_USERDIRS=1' to enable it.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1013 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-10 07:28:28 +00:00
sezero
098164746b tighten a bit more..
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1012 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-09 11:50:38 +00:00
sezero
140ee9c9c9 improve mission pack loading from cmdline and via the 'game' command:
interpret -missionpack and [-]game missionpack as the same as a new
QuakeSpasm extension.  besides, do not let loading of the mission pack
directory twice.


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1011 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-09 10:12:30 +00:00
sezero
b7848d0233 changes/fixes to 'game' command, to replicate FitzQuake Mark V behavior:
* make 'game' command to strip all mission pack support
* make 'game' command to accept an optional second mission pack argument,
  i.e. -hipnotic, -rogue or -quoth.
* so the new behavior does:
  game id1 --> really returns to bare id1 game, doesn't accept any mission pack arguments
  game xxx -hipnotic --> strip down to id1 game, load hipnotic and load xxx on top of them
  game xxx --> strip down to id1 game and load xxx on top of it
* additionally, some extravaganza:
  game xxx --> if the game is already xxx, but the engine was started with -hiptonic
               or -rogue or -quoth, strip down to id1 and reload xxx on top of bare id1
  game xxx -hipnotic --> if the game is already xxx, but the engine was started without
              -hiptonic, strip down to id1, load hipnotic and reload xxx on top of them


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1010 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-09 07:13:20 +00:00
sezero
c4d1052c2b add/remove some newlines to Quakespasm.txt for easier reading
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1009 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-09 07:10:50 +00:00
stevenaaus
a37cf183dc Update doco a little for recent changes.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1008 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-09 01:52:00 +00:00
stevenaaus
dab96331b9 Rename our docos from README.html to Quakespasm.html (etc).
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1007 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-09 00:45:12 +00:00
sezero
d7bf2dff4f fix a r1003 bug in COM_Game_f()
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1006 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 22:15:50 +00:00
svdijk
d7fb4c3d00 pl_linux.c: implement PL_GetClipboardData using SDL2
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1005 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 21:30:16 +00:00
sezero
57294d262d adjust date in sgml and regenerate README files.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1004 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 21:11:55 +00:00
sezero
54aad595c8 moved Host_Game_f to common.c, made it to use COM_AddGameDirectory(). moved in-memory pak structures, searchpatch structure and searchpath global declarations to common.h. adjusted affected extra patches.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1003 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 21:10:33 +00:00
svdijk
ba9eebd4e8 in_sdl.c: Rename the mouse filter functions for consistency.
Also surround the SDL version by "#if defined(USE_SDL2)" and "#endif", this
suppresses an unused function warning when building for SDL1. (Building for
SDL2 still gives an unused variable "modstate" warning though.)


git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1002 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 20:29:16 +00:00
ewasylishen
057e1494f7 Update README.sgml with some new 0.85.10 features and clarify the description of the sfx filter. Oz: sorry, I couldn't get sgml2rawtxt to work, so I'll leave it for you to regenerate the html/txt files
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1001 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 19:48:49 +00:00
sezero
604a0cef6f make Sander's FS search patch compatible with on-the-fly gamedir changing
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@1000 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 18:47:50 +00:00
sezero
a8199034c2 make homedir patch to support on-the-fly game directory switching
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@999 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 18:37:24 +00:00
sezero
ce6e04fd6e add the com_base_searchpaths thing of qw and use it in Host_Game_f(), kill the no longer needed com_nummissionpacks, KillGameDir() and NumGames().
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@998 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 18:20:47 +00:00
sezero
e9a6da6b0b tighten Host_Game_f() a bit more
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@997 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 16:02:58 +00:00
sezero
78fb4b0de5 Host_Game_f(): simplify
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@996 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 14:29:12 +00:00
sezero
bba00c335c fix the homedir patch (the 2nd pass sholud use host_parms->userdir, not host_parms->basedir)
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@995 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 12:33:22 +00:00
sezero
b46affa562 add Sander's FS search order patch as an optional patch
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@994 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 09:30:51 +00:00
sezero
0730834b0c revert r988
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@993 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 09:10:27 +00:00
ewasylishen
a5dffbb059 gl_screen.c: make the console speed independent of the current resolution. Before, switching to a really high (e.g. 2880x1800) resolution would make the colsole take several seconds to open/close
Not totally sure about this but i think it's a decent idea. I'm using 800x600 as a reference screen size (arbitrary choice but it's the default QS resolution). So if your resolution is 600 pixels tall this will make no difference. On higher resolutions this will make the console a bit faster than before.

git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@992 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 06:25:59 +00:00
ewasylishen
9330762c8c R_CullSurfaces: small optimization. Avoid doing (s->visframe == r_visframecount) test on all world surfaces, instead, use the surfaces in the world texture chains, which already passed that test in R_MarkSurfaces.
git-svn-id: svn+ssh://svn.code.sf.net/p/quakespasm/code/trunk@991 af15c1b1-3010-417e-b628-4374ebc0bcbd
2014-09-08 04:31:26 +00:00
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