Commit Graph

4139 Commits

Author SHA1 Message Date
Denis Pauk 9a13efe9b4 game: fix door open in base3
Partial revert f95ca597 with sorting of fields.
2024-04-21 18:46:17 +03:00
Denis Pauk 067a30e83d savegame: fix load/save Q64 maps 2024-04-20 18:40:32 +03:00
Denis Pauk 85dcc852b7 cmodels: Add quake2 map type for remove all ReRelease flags 2024-04-20 17:21:51 +03:00
Denis Pauk 119e1f6993 cmodels: extend texture name size to 64 2024-04-20 13:07:19 +03:00
Denis Pauk cca9317a55 cmodels: add surface and contents flags convert logic
Based on:
* https://github.com/NightDive-Studio/sin-ex-game
* https://github.com/TrenchBroom/TrenchBroom/
2024-04-20 01:35:12 +03:00
Denis Pauk 9b6bae3454 renders: remove custom function for non QBSP format
Also remove Little* function usage, QBSP come with correct byte order.
2024-04-18 01:06:06 +03:00
Denis Pauk 8d21ed6874 renders: remove support of QBSP map format
Map should be converted from any format to QBSP before render by
Mod_Load2QBSP
2024-04-18 00:29:14 +03:00
Denis Pauk c3af9815e6 renders: use converted to QBSP format map
Mod_LoadValidateLumps is fully removed.
2024-04-17 01:14:22 +03:00
Denis Pauk 606451cc9c collision: move surface flag to QBSP convert logic
Only Mod_LoadVisibility has LittleLong format convertion logic on
server side.
2024-04-17 00:34:36 +03:00
Denis Pauk 3e46e777c0 cmodel: implement left QBSP to QBSP convert 2024-04-17 00:28:43 +03:00
Denis Pauk becea2987b collision: direct QBSP map load 2024-04-17 00:22:10 +03:00
Denis Pauk 1bc2d7d18b collision: add DKBSP callbacks 2024-04-17 00:20:23 +03:00
Denis Pauk aefea127e2 cmodel: move convert callback to rules tables 2024-04-17 00:16:33 +03:00
Denis Pauk c0e3a86f30 collision: use RBSP to QBSP converted maps 2024-04-16 23:55:39 +03:00
Denis Pauk 3cd279248d cmodel: Split Mod_Load2QBSP_IBSP to separate functions 2024-04-16 23:38:49 +03:00
Denis Pauk 53d69f98e5 collision: create IBSP -> QBSP convert logic 2024-04-16 23:22:36 +03:00
Denis Pauk 12aaebf80e maps: validate read outside of BSPX section 2024-04-16 01:17:09 +03:00
Denis Pauk 2f0d3e2189 render: support texture name with full field size 2024-04-16 00:12:43 +03:00
Denis Pauk ea91764196 collision: make firstbrushside unsigned 2024-04-16 00:12:24 +03:00
Denis Pauk 446224467d Fix memory use after free detected by ASAN 2024-04-15 00:30:30 +03:00
Denis Pauk 701defd4ad maps: move get rules to separate function 2024-04-13 15:58:32 +03:00
Denis Pauk 2d6241b31e renders: move lightmap calls to LM_CreateLightmapsPoligon 2024-04-13 14:44:40 +03:00
Denis Pauk 02b8e85c01 opengl renders: support of gl_version_override cvar
Provides way to check render with lower officialy
reported OpenGL version.

Same as:
* MESA_GL_VERSION_OVERRIDE=4.6
* MESA_GLSL_VERSION_OVERRIDE=460
2024-04-13 13:25:34 +03:00
Denis Pauk 5babb3b96a renders: fix function name in GL4*_InitContext errors 2024-04-13 01:03:42 +03:00
Denis Pauk 4ab6777e1f renders: move lightmap creation call outside of LoadFace code 2024-04-13 00:15:31 +03:00
Denis Pauk 310c0fdb58 maps: load code cleanup 2024-04-12 00:13:14 +03:00
Denis Pauk 7a5154bd6b renders: Add RBSP initial support
Surfaces/faces/tetures flags is incorrect.
2024-04-11 00:35:43 +03:00
Denis Pauk c13074758a client: Add RBSP initial support
Structures sizes should be mosly correct and have found by estimate
sizes that could have lump size mod equal to zero as for other formats.
Possition of fields are taken from IBSP structures, that could be
incorrect. All other fields marked as unknow/unused.
2024-04-11 00:13:10 +03:00
Denis Pauk d4bc315363 client: play arbitrary CDTRACK ogg file
Initial implementation of https://github.com/yquake2/yquake2remaster/issues/18
2024-04-09 00:34:47 +03:00
Denis Pauk 1e935a5879 collision: fix crash without vis info 2024-04-08 23:07:01 +03:00
Denis Pauk 30861e07ef filesystem: sort files in pack and use binary search in packs 2024-04-07 18:46:40 +03:00
Denis Pauk ae4845782c readme: Add swl to supported textures 2024-04-07 18:46:40 +03:00
Denis Pauk e3a1b0ef11 maps: Mod_CalcNonModelLumpHunkSize combine QBSP cases 2024-04-07 18:46:40 +03:00
Denis Pauk e90fa70680 renders: reuse Mod_CalcNonModelLumpHunkSize 2024-04-07 18:46:40 +03:00
Denis Pauk d2e5955547 renders: reuse CalcLumpHunkSize for Leaf and Nodes 2024-04-07 18:46:40 +03:00
Denis Pauk 851c72f7b4 soft: sync code with other renders 2024-04-07 18:46:40 +03:00
Denis Pauk fe96447980 client: fix gles3 name
Fix regression introduced in e61d9444c

https://github.com/yquake2/yquake2/issues/1097
2024-04-07 18:43:45 +03:00
Yamagi 352d87af15 Add SDL 3 support to ref_gl4.
This is mostly a port of the same changes to ref_gl3:

* Add SDL 3 support to the Makefile.
* Port API changes.
* Bump renderer API to version 7.

a884514f97
https://github.com/yquake2/yquake2/issues/1097
2024-04-07 18:38:15 +03:00
Yamagi 4fedab5914 Port ref_vk to SDL3.
* Makefile support for SDL3.
* Change API to match SDL3.
* Bump renderer API to version 7 and communicate SDL version to client.

61be37b183
2024-04-07 18:25:14 +03:00
Denis Pauk 4bd19bf982 Merge remote-tracking branch 'yquake2/master' 2024-04-07 18:12:09 +03:00
Yamagi 8d04ed0bbf Mention SDL 3 as alternative to SDL 2. 2024-04-07 11:01:45 +02:00
Yamagi 8a9e31ab86 Clearify `vid_gamma` in the GL1 renderer. 2024-04-07 11:01:45 +02:00
Yamagi e61d9444c9 Bump default renderer to GL3...
...and alter the render finding and fallback sequences to include GLES3
as the first fallback. This should have been done years ago, when GL3
became the clear better option above GL1.
2024-04-07 11:01:45 +02:00
Yamagi 23f60d25b1 Pass SDL major version between ref and client, bump ref API version.
SDL major versions must not be combined in one process, otherwise bad
things will happen. In the best case the game crashes, in the worst case
strange bugs will occure. To prevent that:

* Add a new field `framework_version` to the renderer API and use it to
  pass the SDL major version from the renderer to client. Don't load the
  renderer if it and the client were build with different SDL major
  versions.
* Bump the renderer API version to 7. This could have been implemented
  by assuming `framework_version == 0` (not filled by renderer) as SDL
  2, but let's keep things clean and bump the version.

While here fix a long standing bug with printing the error when not
loading a renderer lib. The message must be generated before shutting
down the renderer, otherwise the API version will alsways be 0. The
struct is zeroed at renderer shutdown.
2024-04-07 11:01:45 +02:00
Yamagi 78c951d620 Implement SDL3 into the CMakeLists.txt. 2024-04-07 11:01:45 +02:00
Yamagi 8cedbb0694 Port the Windows platform backend including Makefile support to SDL3.
This also fixes a long standing bug with the Windows part of the
Makefile linking -lSDL2 into q2ded.exe.
2024-04-07 11:01:45 +02:00
Yamagi a675b654c6 Update to SDL 3.1.1 API.
Changes are:
* SDL_SetWindowGrab() was renamed to SDL_SetWindowMouseGrab().
* SDL doesn't give precalculated battery states anymore. Use the same
  scale as SDL 3.1.0, 20% is low and 1% is empty.
2024-04-07 11:01:45 +02:00
Yamagi af82cfe978 Switch the default for `vid_highdpiaware` to 1 when build against SDL3.
With SDL3 the high dpi support is in much better shape than with SDL2.
And for Wayland the experience on high dpi displays is generally better
when the application is high dpi aware.
2024-04-07 11:01:45 +02:00
Yamagi 218829f031 Port the SDL audio backend to SDL 3.
Reimplement `SDL_BackendInit()` and `SDL_BackendShutdown()` for SDL 3.
Hide now unnecessary locking calls behind !USE_SDL3. To minimize code
duplication `SDL_Callback()` is hidden behind a wrapper function.
2024-04-07 11:01:45 +02:00
Yamagi 74ac473447 Remove support for older SDL version in the SDL 3 input backend.
SDL 3 is a fresh start, no need to support older versions.
2024-04-07 11:01:45 +02:00