Commit graph

1231 commits

Author SHA1 Message Date
Christoph Oelckers
67958833b7 Merge branch 'gles2_merge' 2021-09-17 21:22:41 +02:00
Rachael Alexanderson
79cbaf5d4f - split defcvars parser into its own file 2021-09-05 08:21:34 -04:00
Christoph Oelckers
441cd0796f - merged gzdoom-gles2 and fixed some issues with pipeline size validation. 2021-08-03 20:12:19 +02:00
alexey.lysiuk
66e220ff9c - removed SDL2 version check
https://forum.zdoom.org/viewtopic.php?t=72152
2021-05-03 08:20:01 +03:00
alexey.lysiuk
80ba522b20 - brought back old SDL2 CMake module
https://forum.zdoom.org/viewtopic.php?t=72152
2021-05-02 22:02:35 +03:00
alexey.lysiuk
1efb9f4def - cleaned and minimized SDL2 version check 2021-05-02 13:05:20 +03:00
Cacodemon345
e4ada10e78
Remove support for SDL2 2.0.5 and earlier 2021-05-02 12:59:38 +03:00
William Breathitt Gray
f676cd81d2 Remove FindSDL2 find-module, use sdl2-config.cmake instead
This requires SDL >= 2.0.4.

Since <https://bugzilla.libsdl.org/show_bug.cgi?id=2464> was fixed in
SDL 2.0.4, SDL behaves as a CMake "config-file package", even if it was
not itself built using CMake: it installs a sdl2-config.cmake file to
${libdir}/cmake/SDL2, which tells CMake where to find SDL's headers and
library, analogous to a pkg-config .pc file.

As a result, we no longer need to copy/paste a "find-module package"
to be able to find a system copy of SDL >= 2.0.4 with find_package(SDL2).
Find-module packages are now discouraged by the CMake developers, in
favour of having upstream projects behave as config-file packages.

This results in a small API change: FindSDL2 used to set SDL2_INCLUDE_DIR
and SDL2_LIBRARY, but the standard behaviour for config-file packages is
to set <name>_INCLUDE_DIRS and <name>_LIBRARIES. Use the CONFIG keyword
to make sure we search in config-file package mode, and will not find a
FindSDL2.cmake in some other directory that implements the old interface.

In addition to deleting redundant code, this avoids some assumptions in
FindSDL2 about the layout of a SDL installation. The current libsdl2-dev
package in Debian breaks those assumptions; this is considered a bug
and will hopefully be fixed soon, but it illustrates how fragile these
assumptions can be. We can be more robust against different installation
layouts by relying on SDL's own CMake integration.

When linking to a copy of CMake in a non-standard location, users can
now set the SDL2_DIR or CMAKE_PREFIX_PATH environment variable to point
to it; previously, these users would have used the SDL2DIR environment
variable. This continues to be unnecessary if using matching system-wide
installations of CMake and SDL2, for example both from Debian.

This is based on the patch written by Simon McVittie for OpenJK:
52030235f0
2021-05-02 12:45:45 +03:00
Christoph Oelckers
f11780600f - implemented replay gain calculation and management.
This is done entirely on the streamed sound data, unlike the old relative volume which uses the backend's volume setting.
2021-03-10 23:06:21 +01:00
Christoph Oelckers
ba618d308c - bumped CMake version to 3.1.0 in all projects to reduce warning spam in recent versions.
3.1.0 is the highest minimum set in the existing subprojects so this will not exclude anything that hadn't been already.
2021-03-08 13:58:29 +01:00
Rachael Alexanderson
8a4b5dfb77 - remove Raspberry Pi1/2 support completely 2021-01-31 06:18:21 -05:00
Rachael Alexanderson
b70c66e2cc - make ARM compiler flags optional, detect based on ${ZDOOM_TARGET_ARCH}, do not activate on Apple build systems 2021-01-17 06:30:14 -05:00
Rachael Alexanderson
54fba4d642 - windows: create stub functions for the crash logger for ARM. this invites the possibility, hopefully, that if someone is inclined, to actually make one. it also cleans up the code a little bit for intel. 2021-01-01 20:52:18 -05:00
Rachael Alexanderson
64ff15b82b
Squashed commit of the following: (#1248)
commit bbfb934e80
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sun Dec 6 23:50:15 2020 -0500

    - and now it builds! but ... does it run?

commit 67096c8966
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sun Dec 6 22:25:13 2020 -0500

    - one more step closer to compile

commit 5a0c84dd2d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sun Dec 6 22:13:39 2020 -0500

    - set up dynamic opengl load for windows

commit 6ef8118b80
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sat Dec 5 16:38:53 2020 -0500

    - allow compiling for win-arm64

commit 7d6f3797c4
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Dec 4 05:18:29 2020 -0500

    - allow targeting ARM64 on Windows

Co-authored-by: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
2020-12-10 09:16:28 -05:00
alexey.lysiuk
18b5928f49 - eliminate dependency on linking order for autosegs registration 2020-11-13 11:03:16 +02:00
Christoph Oelckers
53a6b9ee59 - moved status bar base class to 'common'. 2020-10-31 12:24:15 +01:00
Christoph Oelckers
fd6b7f9274 - split out the generic parts of the crosshair drawer. 2020-10-31 12:24:12 +01:00
Christoph Oelckers
0e4625867e - moved c_console.cpp to 'common'. 2020-10-25 13:25:31 +01:00
Christoph Oelckers
f912712f9d - cleaned up c_console.cpp to be moved into 'common'. 2020-10-25 13:14:19 +01:00
alexey.lysiuk
34a8a9302f - removed obsolete probing of C++ standard for GCC and Clang
CMake try_compile() function still requires explicit command line option
2020-10-18 11:34:39 +03:00
alexey.lysiuk
d4bb2fa418 - fixed detection of Apple's Clang 2020-10-17 13:33:22 +03:00
Christoph Oelckers
ef7a7cc39d - moved console command line buffer tab completion into their own files.
- layout fixes in load/save menu and confirmation screen.
2020-10-16 22:57:30 +02:00
Christoph Oelckers
3ea0658449 - split the savegame manager into a game dependent and a reusable game indepenent part.
- added menu/advance sound alias.
2020-10-16 22:57:28 +02:00
Christoph Oelckers
504f85e6d4 - moved date code to its own file. 2020-10-16 22:57:27 +02:00
Christoph Oelckers
4b77064fc4 - moved most of the menu code into the backend. 2020-10-16 22:57:25 +02:00
Christoph Oelckers
348f9ae68c - moved i_net into 'common' to bring it in line with Raze. 2020-09-27 12:30:54 +02:00
Christoph Oelckers
8a0634ed0d - file system update from Raze
* support for SSI container format - this is an obscure format used by a few Duke Nukem mods - added to have this subsystem identical between both engines.
* removed some dead wrapper code
* made the Open methods local to their implementations, this was never called virtually.
2020-09-27 10:56:42 +02:00
Christoph Oelckers
528e4e46b3 - texture manager update from Raze
* new texture format: ANM - this reads the first frame of a Build-ANM movie as a texture.
* some preparations for indexed (paletted) rendering.
* optimization of the patch texture checker - do not read in the entire file if checking the initial header is sufficient for rejecting it.
2020-09-27 10:38:12 +02:00
Christoph Oelckers
96ceb11af0 - various engine updates from Raze.
* removed refreshFreq variable and related code. This only got into the backend because of stupid interpolation code in some of the Build games which has long been removed.
* save FixedBitArrays as base64 in savegames.
* allow indirections in the string table - by prefixing the language string with '$$' the remaining text is interpreted as another string label to resolve.
* constexpr in palette code, also replacing #defines with enums.
2020-09-27 10:17:58 +02:00
William Breathitt Gray
3e69e44763
Install soundfonts and WOPL/WOPN banks (#874)
The INSTALL_SOUNDFONT_PATH cache entry is used to configure the
installation directory.
2020-08-27 12:39:56 -04:00
Christoph Oelckers
97d515005b - moved the menu code back to the game side.
This isn't really shareable. Although major parts may be identical, the specifics are not.
2020-06-14 18:37:06 +02:00
Christoph Oelckers
248aa8b5a7 - moved s_reverbedit.cpp to 'common'. 2020-06-14 12:39:59 +02:00
Christoph Oelckers
82e4104900 - moved several VM exports for game independent objects to 'common'. 2020-06-14 12:16:22 +02:00
Christoph Oelckers
3b7e236971 - moved menudef.cpp to "common", as the last piece of the menu code. 2020-06-14 00:42:01 +02:00
Christoph Oelckers
475f740058 - moved base menu code to "common". 2020-06-13 23:04:10 +02:00
Christoph Oelckers
90befff479 - moved out the Doom specific parts from menu.cpp and messagebox.cpp. 2020-06-13 22:43:35 +02:00
Christoph Oelckers
5dfe9918d0 - moved some event related code to 'common'. 2020-06-13 20:31:57 +02:00
Christoph Oelckers
666b6b7007 - moved m_joy to common. 2020-06-08 23:37:21 +02:00
Cacodemon345
9c7f5e941e Fix compilation on NetBSD 2020-06-06 19:38:47 +03:00
Cacodemon345
9bf0f9bbfc Add option to disable SDL joystick support.
This also adds some extra sanity checks to avoid crashes when the joystick isn't initialized.
2020-06-04 17:38:49 +03:00
Christoph Oelckers
3fd4d08004 - fixed startup and font init crashes. 2020-05-04 20:06:54 +02:00
Christoph Oelckers
652712d970 - moved Vulkan and Softpoly backends to 'common'. 2020-04-29 22:17:35 +02:00
Christoph Oelckers
68630d6782 - sanitized dependencies of the softpoly render backend.
This included half the game state and lots of unneeded parts of the software renderer.
The two modules that are shared between softpoly and the classic software renderer have been moved to a neutral place.
2020-04-29 18:48:15 +02:00
Christoph Oelckers
e3fdf2194e - moved a few leftover utility classes to 'common'. 2020-04-29 17:51:04 +02:00
Christoph Oelckers
5d10d6c448 - directory structure cleanup.
The hwrenderer folder did not contain sufficient files anymore for such extensive subgrouping.
2020-04-29 17:36:58 +02:00
Christoph Oelckers
6cf91d3941 - moved the remaining core parts of the GL renderer to 'common'. 2020-04-29 17:19:17 +02:00
Christoph Oelckers
64e301130b - moved low level sky rendering to 'common' 2020-04-29 00:21:30 +02:00
Christoph Oelckers
b1dd1eff50 - moved video files to 'common'. 2020-04-28 23:08:27 +02:00
Christoph Oelckers
3ee1aa76c3 - moved model code to 'common'. 2020-04-27 20:50:46 +02:00
Christoph Oelckers
d434ce32c8 - split voxels.cpp into a backend and a game dependent part. 2020-04-27 19:46:27 +02:00