Commit Graph

3602 Commits

Author SHA1 Message Date
Denis Pauk 318cd69318 Add nolerp filtering by * 2023-09-16 10:56:50 +03:00
Denis Pauk 9f8af6ec54 Generate palette and color map 2023-09-16 10:56:50 +03:00
Denis Pauk dfff401645 Share 24to8 convert logic 2023-09-16 10:56:50 +03:00
Denis Pauk 43e4951f43 Automatically generate 16to8 bit colors 2023-09-16 10:56:50 +03:00
Denis Pauk 903272ee09 Support Quake2 ReRelease textures 2023-09-16 10:56:50 +03:00
Yamagi f714650841
Merge pull request #1059 from protocultor/limits
Added missing include, fixing compilation in Linux and MacOS
2023-09-15 20:17:54 +02:00
Jaime Moreira faee2203b8 Added missing include for USHRT_MAX 2023-09-15 11:42:50 -03:00
Yamagi 4afcd900cc
Merge pull request #1049 from protocultor/g_swap_speed_fix
Fix for g_swap_speed behaviour with extreme values
2023-09-14 21:01:42 +02:00
Yamagi d466b8cf51
Merge pull request #1043 from mjunix/master-1
Fix potential index out of bounds
2023-09-14 20:58:52 +02:00
Jaime Moreira 9821c4b0a2 Show correct replacement for gl_lightmap cvar
Typos corrected
2023-08-26 19:18:24 -04:00
Jaime Moreira c2ab0f61d7 Fixed Zoid Kirsch's name in credits 2023-08-26 19:10:26 -04:00
Jaime Moreira 118b78256f Fixed g_swap_speed behaviour with extreme values
When its value was between 0 and 1, rounded down to 0.
Did the same when bigger than 65535.
Both cases locked up the entire weapon animation.
2023-08-26 19:08:26 -04:00
Johan Mattsson 9c929ab463
Fix potential index out of bounds 2023-08-13 18:04:04 +02:00
Yamagi 9316bd0ba2
Merge pull request #1037 from devnexen/cmake_arch_fix
fix cmake assumption on x86 arch.
2023-08-13 09:52:32 +02:00
David CARLIER d7a6535d01 fix cmake assumption on x86 arch.
set wrongly on i386 even tough the cpu is x86`_64`.
2023-08-05 11:12:19 +01:00
Yamagi ac6990c94e
Merge pull request #1036 from devnexen/netsock_fixleak
unix NET_Socket fix socket leak at address assignment failure.
2023-07-30 17:23:57 +02:00
David Carlier efc59a3e3d unix NET_Socket fix socket leak at address assignment failure. 2023-07-29 06:55:22 +01:00
Yamagi 030af432f7
Merge pull request #1033 from BjossiAlfreds/vn2-fix
Fixed VectorNormalize2 not writing 0-length vectors to out
2023-07-16 09:48:54 +02:00
Yamagi 146e5615af
Merge pull request #1025 from 0lvin/smallfixes
Cinematic JPG/PNG image support
2023-07-16 09:38:56 +02:00
BjossiAlfreds d3c9529df6 Fixed VectorNormalize2 not writing 0-length vectors to out 2023-07-07 23:59:20 +00:00
Denis Pauk 63d990487a models: ignore sprites/skins bigger than MAX_MD2SKINS 2023-07-02 00:30:21 +03:00
Denis Pauk 5c0883594f cl_cin: Support of RGBA png/jpg image with r_retexturing as cinematic 2023-07-02 00:03:18 +03:00
Denis Pauk 86dd7e6d2d Remove redudant rserr_invalid_fullscreen check 2023-07-01 23:17:17 +03:00
Yamagi f6361740f5 Fix another spurious warning.
gcc 13.1 thinks that `newsocket` can be used uninitialized, because it
doesn't know that a call to `Com_Error()` is fatal.
2023-07-01 17:52:36 +02:00
Yamagi cb317f2cd3
Merge pull request #1031 from protocultor/g_swap_speed
Cheat to speed up "weapon change" animations
2023-07-01 16:21:42 +02:00
Yamagi 8855d650c6
Merge pull request #1030 from devnexen/compile_time_checks
adding compile time assertion support whenever possible
2023-07-01 16:10:34 +02:00
Jaime Moreira a94e9dca81 Snappier "g_swap_speed" behaviour
Player is no longer forced to go through the last frame of activation
or deactivation of a weapon before changing its state.
2023-06-29 11:14:58 -04:00
Jaime Moreira c5e2d51fd7 Cheat cvar "g_swap_speed" implemented
Allows to skip frames of "putting down weapon" and
"raising weapon" animations, speeding them up.
2023-06-28 15:28:40 -04:00
David Carlier ce3e9136a8 adding compile time assertion support whenever possible
and convert some runtime which deserve to be evaluated earlier.
2023-06-17 16:37:29 +01:00
Yamagi 0e92c704c9
Merge pull request #1028 from BjossiAlfreds/tdam-dir
T_Damage no longer modifies dir parameter
2023-06-17 17:28:36 +02:00
Yamagi 04abfca2df
Merge pull request #1027 from BjossiAlfreds/makronjmp-aifix
Fix for AI bug introduced by new makron jump code
2023-06-17 16:34:40 +02:00
Yamagi 6339fccd49
Merge pull request #1029 from devnexen/little_optimisations
hunk api enrichment and micro optimisation on R_SetFrustum
2023-06-17 16:32:42 +02:00
David CARLIER 1ce09d7ef9 R_SetFrustum micro optimisation. 2023-06-16 13:06:05 +01:00
BjossiAlfreds 9ca5923082 T_Damage no longer modifies dir parameter 2023-06-10 18:19:37 +00:00
BjossiAlfreds 51bbb7da70 Fix for AI bug introduced by new makron jump code 2023-06-07 13:44:11 +00:00
Yamagi 4f04e7857a
Merge pull request #1016 from devnexen/netsocket_desc_leaks
network close descriptors on socket creation failure.
2023-06-05 19:16:23 +02:00
Yamagi 9212ded546
Merge pull request #1011 from devnexen/cl_setenv_overflow_fix
fix potential overflow on env vars settings.
2023-06-05 19:15:56 +02:00
Yamagi 0f696623f0
Merge pull request #1010 from BjossiAlfreds/makronjmp
Various fixes to makron jump sequence
2023-06-05 19:15:42 +02:00
BjossiAlfreds 8d937b0a9c Various fixes to makron jump sequence 2023-05-21 16:43:07 +00:00
David CARLIER c216eece9e network close descriptors on socket creation failure. 2023-05-21 15:24:28 +01:00
Daniel Gibson 218ac53ce9 GL3: Add hack to make lava glow, fix #1014
Normal warping surfaces (SURF_DRAWTURB) with water etc should use
brightness 0.5*intensity (like they did before), but those with lava
should be brighter, so use 1.0*intensity in the shader.
The reason that intensity needs to be scaled down is that these surfaces
have no lightmaps, so they'd be rendered fullbright otherwise.

I'm using the simple heuristic of texturename contains "lava" to
detect lava textures.
2023-05-20 21:07:16 +02:00
Yamagi 51cdc80525 Fix game with older SDL versions.
The window `flags` must be returned always, otherwise there won't be
usable Window flags and the game doesn't start.
2023-05-20 16:26:02 +02:00
David CARLIER 07553f0980 fix potential overflow on env vars settings.
changing a bit Q_strlcpy flow as it can report wrong bytes copied
if src > buffer size.
2023-05-14 19:16:18 +01:00
Yamagi 5f03705c5d Update stb_image.h to v2.28. 2023-05-14 10:01:04 +02:00
Yamagi dbc0fa12ec Update glad-gles3 to it's latest version. 2023-05-14 09:57:45 +02:00
Yamagi 83fd0d092e Update glad-gl3 to it's latest version. 2023-05-14 09:55:37 +02:00
Yamagi a5560ff3a2 Implement high dpi awareness into the client and all renderers.
Over the last years high dpi displays became increasingly popular. We
already implemented very basic high dpi support for Windows several
years ago by setting the "please don't scale us" option. Linux (and
all other unixoid platforms) hadn't a real understandig of high dpi
and everything involved until the advent of Wayland and finally the
*fractional-scale-v1* protocol last autumn.

Since then SDL (even bevore the protocol was finalized) and all three
common Wayland compositors (Gnome, KDE and wlroots) have grown support
for the protocol and are now high dpi aware. In a high dpi aware world
the choice is scale yourself or get scaled by the compositor. The later
option isn't so good for fast paced games like Quake II, it introduces
blur and slugishness. Therefore implement hig dpi awareness through SDL.

This isn't perfect right now:
* SDL is still getting high dpi awareness fixes with every release. High
  dpi awareness in YQ2 is currently limited to at least SDL 2.26 and we
  may rise the required version even more if necessary.
* There are stll bugs in the compositors. For example Gnome 44.1 has a
  tedency to misscalculate the space occupied by the fullscreen window,
  the game ends up wit a white bar on top. sway even misscalculates
  some scaling factors: https://github.com/swaywm/sway/issues/7463
* SDL hasn't got a reliable way to get the real non scales desktop
  resolution.

Because of this:
* High dpi awareness is currently restricted to Wayland. Let's get one
  platform right before we implement it for everything else.
* It's hidden behind `vid_highdpiawareness` and disabled by default.

High dpi awareness is implemented by setting `SDL_WINDOW_ALLOW_HIGHDPI`
on the window. After the window and rendering context are created
`SDL_GL_GetDrawableSize()` or `SDL_GetRendererOutputSize()` are used
to query the actual drawable size and the internal representation is
overwritten with it.

This would scale the fullscreen window over the full screen, no matter
what resolution was selected. Some work arounds are implemented to
(mostly) keep the old behaviour were resoltions lower than the desktop
resolution weren't scaled. There is one inconsistency: While the non
high dpi aware soft renderer always scaled over the full screen, the
high dpi aware variant doesn't. This is a restriction by SDL Renderer.

Setting native fullscreen was broken before when running on high dpi
displays and it's not fixed. This is caused by SDL being unable to
determine the real resolution (or whatever the compositor thinks the
real resolution is). Depending on the compositor or if the client is
high dpi aware the correct resolution must be set by hand **or** auto
setting with `r_mode -2` must be used. Resolution detection was switched
to `SDL_GetCurrentDisplayMode()` because it's somewhat less problematic
than `SDL_GetCDesktopDisplayMode()`.

The renderer API was extended by one function pointer `*GetDrawableSize`
used to communicate the actual drawable size between renderer and
client. The API version was bumped to 6. I'll fix ref_vk before pushing
this change to master.
2023-05-14 09:44:23 +02:00
Yamagi e0dd7c9d00
Merge pull request #1008 from BjossiAlfreds/makrondeath-fix
Fixed despawning makron torso
2023-05-13 15:21:32 +02:00
BjossiAlfreds f128c44e30 Fixed despawning makron torso 2023-05-09 18:37:15 +00:00
Yamagi a241fd50e4
Merge pull request #999 from devnexen/gcc13_build_fixes
addressing few gcc 13 analyser warnings.
2023-05-08 21:16:55 +02:00