Commit Graph

3769 Commits

Author SHA1 Message Date
Jaime Moreira 94c4bf2df7 GL1 unified draw calls, 7
Changed "buffer" functions (vertex, single/mtex, color) to macros.
Macros eliminate the function call overhead, resulting in faster
execution times. Depending of the hardware, there might be a
performance increase of almost 10%.
This forced the buffer to be exposed as global.
Not worth doing this for 2D elements though.
2024-07-27 23:08:46 -04:00
Jaime Moreira 826f4816f6 There's no such thing as "gl1_colorlight"
"Invented" in 575ea06b9, only existed in video menu.
Resurrect this when it actually works.
2024-07-27 23:05:59 -04:00
Yamagi 4b3545697e Bump version number to 8.41pre. 2024-07-27 09:41:02 +02:00
Yamagi 4e41dbf186 Bump version to 8.40. 2024-07-27 09:40:00 +02:00
Yamagi 528ffe6a6d Add missing `R_ApplyGLBuffer()` to actually render the player menu.
This fixes part of the player setup menu missing after the GL1 grouped
drawcalls branch was merged.

Submitted by @protocultor in
https://github.com/yquake2/yquake2/pull/1124#issuecomment-2241272507
2024-07-21 09:24:49 +02:00
Yamagi 824cd9c034 Update CHANGELOG for 'Group draw call in GL1.' 2024-07-20 09:35:14 +02:00
Yamagi 85ca97192d
Merge pull request #1125 from apartfromtime/menu-stack
Menu: minor code refactor
2024-07-20 09:31:54 +02:00
Yamagi eef7db91d8
Merge pull request #1124 from protocultor/gl1_buffer
Grouped draw calls for improved performance with GL1
2024-07-20 09:24:23 +02:00
apartfromtime df81a8b7b8 menu: active menu layer
Replace function pointers with active menu layer.
2024-07-20 11:57:21 +10:00
apartfromtime 2bafa22cfc menu: menu framework function pointers
Add function pointers draw and key event to menu framework.
Setup function pointers for menu frames.
Pass menu framework as parameter to M_PushMenu().
2024-07-20 10:21:22 +10:00
Yamagi 4b9b8e14a4 Switch g_quick_weap to 1 by default.
It's a nice to have convenience feature that most players will never
notice. Die hard traditionalists can switch it off.
2024-07-15 21:42:15 +02:00
Yamagi 2d581a3667 Fix description of g_quick_weap and fix typo, it's SDL 3.1.2. 2024-07-15 21:38:26 +02:00
Jaime Moreira 15a1ebdd74 Deleted gl1_biglightmaps
glTexSubImage2D() calls are very slow, and are even slower when
the texture is big. Dynamic lighting changes are small compared
to the huge 512x512 size of the lightmap this option provided,
so it was detrimental to performance.
Original logic remains underneath if there's a need of a comeback.
2024-07-15 12:45:15 -04:00
Jaime Moreira 24b546ba54 GL1 unified draw calls, episode vi
Buffered shadows.
2024-07-15 12:33:19 -04:00
Jaime Moreira 55dfaa2e3b GL1 unified draw calls, 05
Buffered 'alias' models. Logic from R_DrawAliasModel() and
R_DrawAliasFrameLerp() was moved to R_ApplyGLBuffer().
2024-07-15 11:20:26 -04:00
Jaime Moreira e8b2e36bd8 GL1 unified draw calls, chapter iv
Buffered flashblend effects.
2024-07-15 10:18:46 -04:00
Jaime Moreira 749e70b988 GL1 unified draw calls, part 3
Batching / buffered procedure, applied to multitexture surfaces.
This solves the issue with gl1_overbrightbits, when jumping
between 0 and 2-4.
2024-07-15 09:05:21 -04:00
Jaime Moreira 4461128255 GL1 unified draw calls, cont.
Batching procedure from previous commit, applied this time to GLPoly
/ single texture surfaces; alpha and liquid included.
2024-07-15 08:23:43 -04:00
Jaime Moreira 50aebd2de4 GL1 unified draw calls, init
Implemented a batching procedure, to try to group meshes in a buffer
and use a final GL call to draw them all in one step, instead of the
many GL draw calls existing today.
For now, only 2D textures are included, especifically console text
("conchars"), scrap and tiles. It's not worth doing this for
individual 2D elements (e.g. crosshair).
2024-07-15 06:56:02 -04:00
Jaime Moreira 4503333b3a GL1: lighting for brushes on the entity list...
...is being "preprocessed" before regenerating lightmaps, so there
are no additional changes to the lightmaps when drawing those brushes.
2024-07-14 20:20:27 -04:00
Jaime Moreira 1bae1e359f GL1: removed many fruitless glTexParameteri calls
They were in this form:
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG/MIN_FILTER,GL_LINEAR)
Only appeared at startup, but we didn't need so many of them.
2024-07-14 19:31:00 -04:00
Yamagi fd2ebb8891 Update CHANGELOG for 8.40. 2024-07-13 16:19:14 +02:00
Yamagi 2a2f3e0b2f
Merge pull request #1123 from BjossiAlfreds/helpmsg-always
Workarounds for naggy help icons
2024-07-11 21:29:26 +02:00
Yamagi 7b6518060e
Merge pull request #1122 from devnexen/fix_dyn_symb_loading_sig
consistenly cast dynamic loading from generic pointer to fn pointer s…
2024-07-11 21:15:51 +02:00
BjossiAlfreds 6a25ba5118 Workarounds for naggy help icons 2024-07-09 13:11:12 +00:00
David Carlier 2b4598d536
consistenly cast dynamic loading from generic pointer to fn pointer signature. 2024-07-06 18:40:13 +01:00
Yamagi 8c0904f0c8
Merge pull request #1121 from 0lvin/backport
Improve pcx support and cleanup soft render
2024-07-06 18:49:29 +02:00
Denis Pauk ac2a50cb4a soft: scale model texture s,t values
ref_gl renders use 0.0..1.0 float texture coordinates in gl commands
and skin ratio/resolution could be any.
ref_soft render uses absolute coordinates as result textures with
different to expected size are applied incorrectly.

Fix will not add support of scalled retextured skins, just fix case
when ratio is incorrect after scale down such or place a incorrect
pcx skin to the model directory.
2024-07-06 16:48:20 +03:00
Denis Pauk 79c71c7a68 soft: get rid unused R_PolysetUpdateTables 2024-07-06 16:41:52 +03:00
Denis Pauk bfeb842bd3 pcx: fix support of bytes_per_line
https://github.com/yquake2/yquake2/issues/1119
2024-07-06 16:32:45 +03:00
Yamagi 3f6a0a3689
Merge pull request #1118 from devnexen/few_more_build_chg
fix few warning builds.
2024-07-06 09:50:37 +02:00
Yamagi af5a876be4 Fix a typo. 2024-07-06 09:20:04 +02:00
Yamagi 4c4759b73b
Merge pull request #1120 from BjossiAlfreds/jug13-mapfix
Mapfix for map jug13 (The Civic Center) in Juggernaut
2024-07-06 08:51:58 +02:00
BjossiAlfreds 298dd69def Mapfix for map jug13 (The Civic Center) in Juggernaut 2024-07-05 15:26:22 +00:00
David Carlier a8a15ddff3
fix few warning builds. 2024-06-30 23:07:03 +01:00
Yamagi a315b15494
Merge pull request #1116 from devnexen/prev_fix_sec_optim
micro optimisations for previous security mitigations.
2024-06-30 20:54:08 +02:00
David Carlier d0dc3e9926
micro optimisations for previous security mitigations.
also strtok_r uses its own provided buffer instead of the static one
even in a somewhat monothread context, it s still better.
2024-06-30 17:08:45 +01:00
Yamagi 1a1b32961b Refactor the download filter.
The first try didn't take into account that an evil server could
override the filter list by sending a stuff command. Fix this by
hardcoding the filters for .dll, .dylib and .so. Make sure that the
filters are always applied, either when the download is requested
through the `download` command or because game data is missing.

This is just a poor mans fix, trying to rule out an obvious way to
inject code into the client.
2024-06-24 11:56:11 +02:00
Yamagi 852cec05e7 Filter .., :, / and \\ from al_driver and cl_libcurl.
This is a poor mans safeguard against malicious server trying to
download and inject libraries.
2024-06-22 17:22:22 +02:00
Yamagi 5e6a73dc3f Include downloads into the security considerations. 2024-06-22 16:57:30 +02:00
Yamagi 468f90ad48 Implement a simple download filter.
`cl_nodownload_list` is a whitespace seperated list of strings, files
containing one of these strings in their name are never downloaded. Set
to `.dll .dylib .so` by default to prevent downloading libraries which
can be injected into client.

Closes #1114.
2024-06-22 16:56:42 +02:00
Yamagi d5c7845271 Fix formating of the cvarlist. 2024-06-22 16:50:54 +02:00
Yamagi 93178d0f6b Implement a Q_strcasecmp() library replacement function.
It will be used in a later commit. While at it change Q_strcasecmp() and
Q_strncasecmp() to take the arguments as const, matching the signatures
of the non-replacement versions.
2024-06-22 16:47:19 +02:00
Yamagi d5d7ee29ec
Merge pull request #1115 from hbokh/feature/fix-apple-silicon-build
Update Makefile to build on Apple Silicon
2024-06-17 18:54:16 +02:00
Yamagi 71ff8bcdfc
Merge pull request #1111 from 0lvin/backport
Show weapon in player model preview
2024-06-16 09:53:24 +02:00
Henk 473b2ca078
Update Makefile to build on Apple Silicon 2024-06-14 17:26:24 +02:00
Denis Pauk e7dc4f3b2c menu: Fix default NULL 2024-06-11 23:28:50 +03:00
Denis Pauk 28aeb68826 menu: show weapon in player model preview 2024-06-08 23:36:57 +03:00
Denis Pauk 8fd8c2b546 menu: support long player skin name 2024-06-08 23:21:00 +03:00
Yamagi 41e9b46358
Merge pull request #1110 from protocultor/gyro_tightening
Gyro tightening
2024-06-08 19:09:53 +02:00