Commit Graph

3808 Commits

Author SHA1 Message Date
Yamagi 8cb26f6f8e Update the LICENSE file.
* Add GLAD, used by the GL1 and GL3 renderers.
* Add zlib, because our unzip module is taken from zlib.
2024-08-12 09:20:21 +02:00
Yamagi 53b738f77b
Merge pull request #1128 from protocultor/ref_gles1
OpenGL ES 1.0 renderer
2024-08-12 09:02:40 +02:00
Yamagi 82b6ce322b Update the README to reality.
* Mention some more new features added in the last years.
* Make clear that only FreeBSD, Linux and Windows have official support.
  Everything else is community supported.
* Link to the official addons and yquake2remaster.
* Give some hints to bug reporters and contributors.
* Link to CI builds.
* Avoid relative links so that personal forks link back to the main
  projects. If forks want to link to their own ressources, they can
  edit the file.
2024-08-12 08:54:03 +02:00
Yamagi 18f7541138
Merge pull request #1134 from BjossiAlfreds/con-ext
Console clipboard support and input nav
2024-08-11 18:51:11 +02:00
Yamagi f23fb932df
Merge pull request #1130 from 0lvin/backport
Backport changes from remaster repository
2024-08-11 18:47:41 +02:00
BjossiAlfreds 98d33fad06 Moved input line indicator ] out of line buffer 2024-08-11 12:55:35 +00:00
Denis Pauk dab57b12ed menu: add const and use NULL as 0 for pointers 2024-08-11 15:40:33 +03:00
Denis Pauk f6e8aeab38 pcx: show developer warning for uncommon pcx files
https://github.com/yquake2/yquake2/pull/1130#issuecomment-2259254531
2024-08-11 15:40:33 +03:00
Denis Pauk 9e303a8044 cin: remove SCR_LoadPCX 2024-08-11 15:40:33 +03:00
Denis Pauk 7f894f1d6f filesystem: make name parameter const 2024-08-11 15:40:33 +03:00
Denis Pauk b40976220c menu: support players models inside pak
Code ignores files in pak only in case when such file exists in
filesystem.
2024-08-11 15:40:33 +03:00
Denis Pauk 0293e946ca filesytem: sort files in paks and use binary search 2024-08-11 15:40:33 +03:00
Denis Pauk 8520285a10 renders: support 24bit pcx images
Based on ffmpeg code and checked with
https://samples.ffmpeg.org/image-samples/pcx/
2024-08-11 15:40:33 +03:00
Denis Pauk f688ea599f cin: support 24bit pcx images 2024-08-11 15:40:33 +03:00
Denis Pauk 87c0029b2b client: play arbitrary CDTRACK ogg file
https://github.com/yquake2/yquake2remaster/issues/18
2024-08-11 15:40:33 +03:00
Denis Pauk 005dfa0ed5 collision: load ent file without has as backward compatibility
https://github.com/yquake2/yquake2/pull/1130#issuecomment-2256461447
2024-08-11 15:40:33 +03:00
Denis Pauk c92664c01d collision: check string entity hash before load
https://github.com/yquake2/yquake2remaster/issues/4#issuecomment-1741814349
2024-08-11 15:40:33 +03:00
Yamagi 180050b9a3 Add Github Workflows to create test build for Linux, MacOS and Win32.
This is should make testing for normal endusers easier by providing
prebuild binaries for them. It also serves as a simple CI by compiling
every commit and Pull Request for Linux, MacOS and Win32. And it saves
time, because (Windows) test build must no longer created by hand.

* Windows is build for Win32 only. We won't add a Win64, because there's
  no point in having a 64 bit Windows release and it would break most
  existing mods. Savegames are also not compatible between 32 and 64 but
  builds.

* MacOS is build to get some test exposure and to publish up to date
  binaries to users. This doesn't mean that MacOS is now officially
  supported. It stays community supported. The binaries are untested,
  because I have no Mac. PRs are welcome. ;)

* Linux is build with ubuntu-latest, which is the last LTS release. The
  binaries should work on most other distros.

Windows includes all required dependencies. As a difference to release
builds the curl.dll is taken from upstream and not a cut down custom
build. MacOS and Linux do not ship the dependencies, users should
install them through Brew or their distro.

Github strips file permission when zipping the assets. A work around
would be to create a tar archive and zip that, but that is ugly. I
opted against it, users must mark the binaries executable by hand.

These workflows trigger at each push to the master master branch and at
each new or edited pull request.

Special features like SDL3 are not supported at this time.
2024-08-11 13:03:12 +02:00
Yamagi 4b24e16a64
Merge pull request #1126 from devnexen/late_fade_data
client sound fade_data is only really used later.
2024-08-11 09:08:35 +02:00
Jaime Moreira 011ea4a1b4 Removed inclusion of OpenGL ES 1.0 header
We're using a glad-generated loader, we don't need it.
Speaking about glad: deleted unused GL extensions in the loader.
2024-08-11 00:09:40 -04:00
Yamagi c2d5b849e5 Bump version number to 8.42pre. 2024-08-08 18:56:25 +02:00
Yamagi 141bf6e7dd Bump version number to 8.41. 2024-08-08 18:55:54 +02:00
Yamagi 8cc3361730 Hardcode the SDL audio driver (again) to `directsound` under Windows.
Windows defaults to `wassapi`, which is a sensible choice. But WASAPI
only guarantees 32 bit float samples, anything else only works if the
driver or something supports it and YQ2 requires 16 bit samples. That
can be worked around by having SDL recode the audio, but I don't want
such a invasive change right before a release.

Another part of #1132.
2024-08-08 18:43:03 +02:00
Yamagi 409c508a7d Update CHANGELOG for 8.41. 2024-08-07 12:08:20 +02:00
Yamagi b3c47df0c8 Don't overwrite SDLs audio driver selection.
Hardcoding default driver for some of the supported platform is a
remnant of SDL 1.2 and hasn't been necessary since SDL 2.0 a long
time ago. In fact it has a high properbility to break things, SDL
could easily end up with a non working driver.

When `s_sdldriver` is set to the newly introduced value `auto` the
driver is selected by SDL. In all other cases the string is the
driver name which SDL will be forced to.

This doesn't fix existing configs. Since the OpenAL sound backend has
been the default for nearly 15 years and we haven't received bug reports
for some other problem with the SDL sound backend in the past, I'm half
sure that there are next to users out there. These can reset the cvar
by hand if necessary.

Closes #1132.
2024-08-07 12:04:54 +02:00
BjossiAlfreds a18ea4b11d CTRL actions work in pre-game console window 2024-08-06 23:48:37 +00:00
Jaime Moreira bbdaadb104 Removed link to desktop OpenGL library for gles1
Done for all platforms, CMakeLists included. Unneeded with glad.
Renderer fallback logic now includes gles1, just before soft:
custom -> gl3 -> gles3 -> gl1 -> gles1 -> soft.
2024-08-03 12:39:23 -04:00
protocultor f41cc545c6
Merge branch 'yquake2:master' into ref_gles1 2024-08-03 10:15:04 -04:00
BjossiAlfreds d11ba119bc CTRL+x and c for cut/copy to clipboard 2024-08-02 00:42:40 +00:00
BjossiAlfreds ced8be673e CTRL+letter actions in console + cursor can be inside edit line 2024-08-01 22:04:25 +00:00
BjossiAlfreds 29eb6a601f Q_strdel and Q_strins utility functions 2024-07-31 21:40:11 +00:00
Yamagi 3aa051c6d2
Merge pull request #1133 from protocultor/lightmapchain_fix
Infinite loop in R_GetBrushesLighting() function, hangs the game
2024-07-31 20:22:57 +02:00
Jaime Moreira 1df86ae16d lightmapchain cleared of surfaces added twice 2024-07-31 12:13:32 -04:00
Yamagi c72d0c1b39 Add back linker options somehow lost in 8cedbb0.
Closes #1129, fixed by @ArminiusTux.
2024-07-29 19:18:48 +02:00
Jaime Moreira 26f578212a Deleted unused variable in R_RegenAllLightmaps()
Static arrays there have their dimensions swapped, they make more sense now.
Added important detail in gl1_lightmapcopies doc.
Also added doc for gl_polyblend, just because of its "popularity".
2024-07-28 12:14:17 -04:00
Jaime Moreira b72c465214 GLES1 renderer: lightmap copies
Available in both GL1 and GLES1. Keep multiple copies of "the same"
lightmap on video memory; they are actually different, because they're
used in different frames. This is a workaround for the usage of
glTexSubImage2D() for dynamic lighting, since modifying textures used
recently causes slowdown in embedded/mobile devices.
Controlled by gl1_lightmapcopies cvar; default in GL1 is `0`, while
in GLES1 is `1`.
2024-07-27 23:22:41 -04:00
Jaime Moreira 0596d23e4c GLES1 renderer: discard framebuffer
Available only on GLES1, allows to use a "performance hint" to the
GPU to discard the contents of depth and stencil buffers after each
frame. Some hardware might want to reuse them, but Quake 2 doesn't
work that way.
Controlled by gl1_discardfb cvar, default `1`.
2024-07-27 23:18:06 -04:00
Jaime Moreira 03227f1ed6 OpenGL ES 1.0 refresher (GLES1 for friends)
Variant of GL1, meant for embedded/mobile devices only.
Build it with "make with_gles1".
For Windows, you'll need MSYS2 and a decent ANGLE implementation
(probably not worth the trouble).
Building with CMake only works in Linux, so it has been commented out.
2024-07-27 23:15:12 -04:00
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
David Carlier ae827dbd86
client sound fade_data is only really used later. 2024-07-22 21:44:06 +01: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