Commit graph

497 commits

Author SHA1 Message Date
Yamagi Burmeister
2e7166b157 Probe GL_EXT_texture_filter_anisotropic with our new logic 2016-08-06 10:18:58 +02:00
Yamagi Burmeister
43c9970772 Switch GL_EXT_paletted_texture to the new probing logic 2016-08-06 10:08:17 +02:00
Yamagi Burmeister
9f0b5d067b Use GL_ARB_point_parameters instead of GL_EXT_point_parameters.
While here switch GL_ARB_point_parameters to a new probing logic and
rename the Cvar to gl_pointparameters.
2016-08-06 09:50:16 +02:00
Yamagi Burmeister
4057376993 GL_EXT_compiled_vertex_array is unused. Remove it.
At can be added back, if it's ever needed.
2016-08-06 09:35:08 +02:00
Yamagi Burmeister
0967f051d8 Require OpenGL 1.4 2016-08-06 09:32:20 +02:00
Yamagi Burmeister
e4751e8c44 Use OpenGL multitexturing extensions to implement multitexturing...
This is a slighty revised version of id Software original code. Icculus
code may have some advantages on broken drivers or underpowered GPUs.
Today it's just a performance hook. This is a first step in fixing #147.
2016-08-05 18:38:48 +02:00
Yamagi Burmeister
2baf97bdf6 Throttle the client to 1000 FPS.
This is more than enough for everyone and prevents wasting CPU time.
Without this change as many client frames as possible are rendered,
Quake II uses a complete core.
2016-08-05 07:49:47 +02:00
Yamagi Burmeister
7ea4db4ace Remove now unused function CL_SendCommand(). 2016-08-04 21:29:30 +02:00
Yamagi Burmeister
d15f5d5b97 Make sure CL_UpdateWindowedMouse() is called.
Without this the automatic mouse grab is not working.
2016-08-04 21:28:17 +02:00
Yamagi Burmeister
a70cc2d923 Switch the refresher to vertex arrays
This is based on work submitted by Scott "pickle" Smith. It's said that
vertex arrays are somewhat faster and more compatible than the old way.
This may remove support of some very, very old GPUs like the Riva128.
2016-08-04 21:11:31 +02:00
Yamagi Burmeister
4dcdb0dc17 Force GL_LIGHTMAP_FORMAT instead of gl_tex_solid_format.
This is more less cosmetics since gl_tex_solid_format == GL_RGB and
GL_LIGHTMAP_FORMAT == GL_RGBA. No measurable FPS change on Nvidia and
Intel. Based upon the OpenGL ES patch by Scott "pickle" Smith.
2016-08-04 21:11:31 +02:00
Yamagi Burmeister
275271c647 Always specify the alpha channel.
This is based upon the original OpenGL ES patch by Scott "pickle"
Smith. This change gives about the same frame rate on an 750TI but
about 3% more frames on an Ivy Bridge IGP with Mesa3D...
2016-08-04 21:11:31 +02:00
Yamagi Burmeister
4ae8706d22 Make the client asynchronous, e.g. decouble net and refresh frames.
This is largely based upon the cl_async 1 mode from KMQuake2, which in
turn is based upon r1q2. The origins of this code may be even older...
Different to KMQuake2 the asynchonous mode is not optional, the client
is always asynchonous. Since we're mainly integrating this rather
fundamental change to simplify the complex internal timing between
client, server and refresh, there's no point in keeping it optional.

The old cl_maxfps cvar controls the network frames. 30 frames should be
enough, even Q3A hasn't more. The new gl_maxfps cvar controls the render
frames. It's set to 95 fps by default to avoid possible remnant of the
famous 125hz bug.
2016-08-04 17:36:42 +02:00
Yamagi Burmeister
fa4eacc976 At OpenAL shutdown don't do not stop only the stream chan but all chans.
I'm not quite sure if this really makes a difference. But it's the only
idea I have regarding several "Quake II hangs at shutdown when OpenAL is
run with Pulseaudio backend" bugs.
2016-08-04 09:21:33 +02:00
Yamagi Burmeister
978eec1a8d Add an explicit fflush() when writing the config.
Yes, fclose() flushes the stream and yes, this is unnecessary. But I've
seen at least two times partial written configs on Win 10. :(
2016-08-04 09:07:47 +02:00
Simon McVittie
92668ca6b1 Fix spelling errors detected by lintian
Based on a patch by Fabian Greffrath against an earlier version of
yquake2.
2016-07-01 09:38:54 +01:00
Daniel Gibson
da6ad6953d Use software gamma for OSX, fix #134
Hardware gamma is broken, especially in fullscreen, and a Mac user told me
that setting HW/screen gamma on OSX is a bad idea anyway, because it resets
the monitor calibration.
The game /should/ look ok with vid_gamma 1 (if your display is configured
properly), but if you think it's too dark set it a bit higher and do
vid_restart.
2016-05-28 16:04:07 +02:00
Yamagi Burmeister
6f64efbd17 Disable gl_ext_multitexturing by default.
Multitexturing was enabled by default in 0f7b422. It gives a small but
on todays hardware neglectable performance boost, but caused several
problems over the years. For example gl_showtris doesn't work with it
and there's at least one render glitch in city3.bsp.
2016-05-01 09:01:39 +02:00
Yamagi Burmeister
eaee1d71d5 Rename cl_stereo* cvars to gl_stereo*.
They're renderer cvars, not client cvars.
2016-04-07 17:01:09 +02:00
Yamagi Burmeister
238ccb8adf Fix warnings with clang after the stereo merge 2016-04-07 16:57:32 +02:00
Valery Guskov
f6c596c1c5 better default configuration for 3d 2016-04-04 23:57:59 +03:00
Valery Guskov
9693004afb removed unused variable 2016-04-04 23:57:08 +03:00
Valery Guskov
248bebeca6 unncecessary newlines 2016-04-04 22:41:27 +03:00
Valery Guskov
d09c942b52 added pause changes from stereo-quake 2016-04-04 22:25:53 +03:00
Valery Guskov
45d3dd0a2f fixed loading display
i guess
2016-04-04 20:55:17 +03:00
Valery Guskov
135fb021e5 fixed viewports a bit 2016-04-04 19:33:18 +03:00
Valery Guskov
294a4dfbb9 cleaning up
removed non-minimal changes from porting stereo-quake
2016-04-04 00:25:20 +03:00
Valery Guskov
bfa212f6ba correct models provide skin path 2016-04-03 19:26:16 +03:00
Valery Guskov
b3bea99597 added new code for 3d crosshair
original meat can be thrown out
2016-04-03 00:26:35 +03:00
Valery Guskov
b662cb9979 added split view basic support 2016-04-01 16:22:28 +03:00
Valery Guskov
0f8bda3c33 first attempt at porting separation support
ported from stereo-quake
http://www.benryves.com/products/stereoquake
2016-04-01 08:51:11 +03:00
Daniel Gibson
703cec74e7 Fix fix for not sending Char_Event to console when not opened
turns out the if the console is opened while no game is currently
running, cls.key_dest is not key_console but still key_game.
Changing it to key_console in those cases blows up in interesting ways.
So in Char_Event() we send events to the console in those cases.
2016-01-30 18:43:32 +01:00
Daniel Gibson
4a762c0002 Don't send Char_Event to Console if it isn't opened 2016-01-30 17:46:34 +01:00
svdijk
31ffb96614 Console: Adjust line length based on scale 2015-12-19 20:36:25 +01:00
svdijk
5c54521199 Screen: Clamp scale to a minimum of 1, except for the HUD 2015-12-19 20:34:02 +01:00
svdijk
54b6d276b2 Screen: Make SCR_Get*Scale() callable before SCR_Init(). 2015-12-19 20:18:17 +01:00
svdijk
354d2ff789 Menu: Some alignment fixes for scaled menus 2015-12-13 11:48:02 +01:00
Daniel Gibson
ca4bab172e Make "no such (old)frame" warnings developer-only
those "problems" don't really matter, so don't spam the console with
it (unless you've enabled developer messages).

"Fixes" https://github.com/yquake2/xatrix/issues/7
2015-12-12 20:17:40 +01:00
svdijk
3e5ac1c15a Draw: Also don't lerp crosshairs 2015-11-24 14:19:16 +01:00
svdijk
0880bef8c8 Draw: Handle "nolerp" of console characters through a cvar 2015-11-24 14:16:18 +01:00
svdijk
44969748fb HUD: Fix centering of scaled crosshair 2015-11-20 22:04:27 +01:00
svdijk
712016783b UI scaling: Clamp the scale to avoid "over-scaling"
This clamps the UI scale, limiting the relative size of the UI
elements to what they would be at scale 1 in a 320x240 resolution.
Allowing bigger scales is not useful, and would make it possible
for the user to shoot him-/herself in the foot by setting a
"too big" UI scale value in the menu. (Since this would mess up
the menu, it could be hard te recover from for a casual user.)
2015-11-20 18:47:08 +01:00
svdijk
8a9741dd89 Videomenu: Minor optimization to GetCustomValue for subsequent calls 2015-11-16 22:23:15 +01:00
svdijk
8d7f4a74e6 Videomenu: Simplify uiscale initialization 2015-11-16 19:26:46 +01:00
svdijk
a6b3bfd35a qmenu.c: Some whitespace changes for consistency. 2015-11-16 19:18:50 +01:00
svdijk
de8c50bcb9 Videomenu: Make the "custom" value handling less error prone. 2015-11-16 19:11:00 +01:00
svdijk
1804fad355 Videomenu: Add integer scaling options up to 6x 2015-11-09 22:14:45 +01:00
svdijk
e92b54990d Videomenu: Also include crosshair_scale in the ui scale option 2015-11-09 22:09:48 +01:00
svdijk
8d9cdc0768 Videomenu: Limit the ui scale option to integer values
Fractional values look ugly. If people really want this they can set this from the console, we won't "advise" it from the menu.
2015-11-08 18:20:54 +01:00
svdijk
0cdf927d3e Default the various scale variables to "-1" (automatic) 2015-11-08 12:48:27 +01:00