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
Yamagi
e5ee2a74a5
Merge pull request #1102 from 0lvin/gles
...
client: fix gles3 name
2024-04-07 18:06:39 +02:00
Denis Pauk
c1920e3ec4
client: fix gles3 name
...
Fix regression introduced in e61d9444c
https://github.com/yquake2/yquake2/issues/1097
2024-04-07 18:50: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
Yamagi
40e1830885
Port joystick and controller handling to SDL 3.
2024-04-07 11:01:45 +02:00