Commit graph

152 commits

Author SHA1 Message Date
Christoph Oelckers
cdf2a17c5a - moved the sound decoding code to the zmusic project.
Since this gets used by both the sound backend and the music code it needs to be in a place accessible to both.
2019-09-29 12:48:12 +02:00
Christoph Oelckers
cfe89ef6e6 - created a new zmusic library which will eventually contain all the music playback code.
Currently all it contains are the MIDI sources and the MIDI devices, the rest needs to be reworked first.
2019-09-28 18:32:25 +02:00
Christoph Oelckers
d3df422031 - made the OPL synth backend a separate library. 2019-09-26 20:06:39 +02:00
Christoph Oelckers
4ba8da290c - made WildMidi a library. 2019-09-25 19:38:48 +02:00
Christoph Oelckers
7962bf189e - made the Timidity(GUS) device a separate library. 2019-09-24 23:43:44 +02:00
Christoph Oelckers
115d1cb182 - made the Timidity++ backend a library, now that it has no dependencies on GZDoom anymore. 2019-09-23 14:27:43 +02:00
Christoph Oelckers
b3a9884eb1 - gave libopen the same treatment and made it its own subproject 2019-09-23 10:03:18 +02:00
Christoph Oelckers
84cc7cbdd2 - made libadl its own library subproject.
This is to improve compile times because the MSVC compiler tends to become slow with large lists of source files in a single project.
This new project is still our stripped down copy of libadl, not the original, because that project contains a large amount of baggage we do not need.
2019-09-23 10:03:17 +02:00
Christoph Oelckers
7916cebdc1 - merged the Hacx extra stuff into zd_extra.pk3 and added the ability to inject data into the resource directory after the IWAD so that the base resources can provide content that can override IWAD data if broken or not usable.
Hacx in particular needs this to fix a handful of buggy actors and to override the IWAD's MAPINFO which is not localizable.
2019-07-15 21:23:46 +02:00
Christoph Oelckers
79ad3e6203 - define _WIN32_WINNT to 0x600 (Vista) in the CMake project instead of littering all files with inconsistent settings for the target version. 2019-07-14 16:55:01 +02:00
Christoph Oelckers
ed6ab39b2d - moved third party library projects to a subfolder to reduce size of the root. 2019-07-14 15:06:54 +02:00
Christoph Oelckers
b087f3f4ed - added Hacx localization support.
Unlike the other games this required a bit of patching of the IWAD's data with a new MAPINFO so it needs to be in a separate .pk3 file loaded after the IWAD.
Since this needs to be loaded after the IWAD it was also possible to add a small DECORATE lump which fixes a few errors inherited from the original Dehacked patch, like monster counting bugs and unintentionally shootable decorations.
2019-07-13 20:29:29 +02:00
Christoph Oelckers
3810d9beb3 - Make HAVE_VULKAN an option so that it can be disabled
Had to compile on a Mac with no MoltenVK and no Vulkan SDK.
2019-06-27 09:10:20 +02:00
Christoph Oelckers
3030a6d389 - set Visual C++ compiler to use /permissive- mode and fixed the one error this generated.
This also means that Visual Studio 2015 is no longer supported as it has no proper standard conforming compile mode.
2019-06-20 20:25:34 +02:00
David Carlier
6ba8faa7fb Inclusion of check symbol cmake's module. 2019-06-02 08:28:30 +03:00
Danilo Spinella
1802b7c6fe Check for execinfo.h and add libexecinfo if needed
Some systems (e.g. musl) do not have execinfo.h header.
Check if libexecinfo (library that provides execinfo.h header
and its functions) is installed in the system, and add
its linker flag if needed.
2019-05-31 21:40:12 +02:00
Danilo Spinella
f4f39becbd Add support for musl-fts library 2019-05-31 21:40:12 +02:00
Christoph Oelckers
a0b0467e91 - restrict Vulkan to 64 bit builds. 2019-03-24 14:34:48 +01:00
Christoph Oelckers
413412f603 Merge branch 'master' into vulkan2 2019-02-23 19:53:38 +01:00
Christoph Oelckers
6be073f528 - removed the XP warning from the CMake project.
This now got even triggered in 64 bit and overall is mostly pointless, considering the extremely low user share of XP.
2019-02-23 13:07:43 +01:00
Magnus Norddahl
c6b29846d0 - add 3rd party vulkan dependencies
- add stubs for a vulkan hw renderer backend
- add RAII wrappers for vulkan object types
- add builder classes to isolate vulkan boilerplate code
- add a swap chain class
2019-02-20 21:21:57 +01:00
Christoph Oelckers
868ac5adf8 - switched the Windows backend to use the Windows Unicode API.
With localization for non-Latin languages on the support list the multibyte API doesn't cut it anymore. It neither can handle system text output outside the local code page nor can an ANSI window receive text input outside its own code page.
Similar problems exist for file names. With the multibyte API it is impossible to handle any file containing characters outside the active local code page.

So as of now, everything that may pass along some Unicode text will use the Unicode API with some text conversion functions. The only places where calls to the multibyte API were left are those where known string literals are passed or where the information is not used for anything but comparing it to other return values from the same API.
2019-02-14 22:23:33 +01:00
Christoph Oelckers
4c2aa1158e Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-02-05 13:56:37 +01:00
Christoph Oelckers
979f1df281 Merge remote-tracking branch 'remotes/origin/master' into new_level_refactor
# Conflicts:
#	src/g_level.cpp
#	src/p_user.cpp
2019-02-05 13:49:07 +01:00
Christoph Oelckers
c4f7f01f31 - fixed optimization settings of RelWithDebInfo build to match the regular release version.
CMake sets RelWithDebInfo to only inline functions explicitly marked as such whereas Release is allowed to inline everything suitable.
2019-02-05 10:03:49 +01:00
alexey.lysiuk
2765159fc6 - disabled VM JIT completely on unsuported platforms 2019-02-04 15:53:35 +02:00
Rachael Alexanderson
6a9322e677 - force internal GME with any build environment created after this commit. if anyone is using a build environment from before - you will have to make sure to enable the relevant variable - or simply nuke and recreate. this applies only if you have the GME library installed on your system - if you were using the internal before, anyhow, you don't have to make any changes 2019-01-23 21:50:10 +01:00
Rachael Alexanderson
de88ca48ab - force CMake to use internal asmjit. I left it in a state so that it can easily be changed back in the future. 2019-01-02 08:19:03 -05:00
Magnus Norddahl
369dcfd57f Merge remote-tracking branch 'origin/master' into asmjit 2018-11-01 21:23:26 +01:00
Vitaly Novichkov
8450dc5fdb Update GME up to 0.6.2 version 2018-11-01 00:15:41 +01:00
Magnus Norddahl
eb9d2b54f3 Merge remote-tracking branch 'gzdoom/master' into asmjit 2018-08-23 18:20:23 +02:00
Christoph Oelckers
7d40edd6ac - disable runtime buffer security check in release build.
This has a minor but measurable effect on performance because it gets inserted into every function which uses a local stack space structure.
2018-08-14 21:29:14 +02:00
Magnus Norddahl
cbb945d8a7 - embed and use asmjit to JIT ZScript VM functions 2018-08-12 02:11:13 +02:00
drfrag666
720bb485be - Disabled position independent executable for MinGW
This broke MinGW-w64 but was ignored with tdm-gcc.
2018-06-18 20:57:52 +02:00
alexey.lysiuk
ce18ff1df3 - use libc++ for all targets on macOS
clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9
2018-05-06 09:44:13 +03:00
alexey.lysiuk
c821b9c2d6 Updated JPEG library to version 9c
Reestablished a few initially removed features to use library's source code without modifications and updated readme file accordingly

http://www.ijg.org/
http://www.ijg.org/files/jpegsrc.v9c.tar.gz
2018-04-30 18:21:41 +02:00
Christoph Oelckers
5c7f2e0217 - removed some dumb CMake script that messed around with Visual Studio's user settings. 2018-03-25 17:51:23 +02:00
Christoph Oelckers
4c4f8288a4 - disable XP toolset warning for 64 bit builds.
- fixed an error with assigning a string constant to a non-const char * variable that was pointed out by compiling with /permissive-.
2018-03-25 10:50:14 +02:00
alexey.lysiuk
7dce4cfaf9 Added CMake option to suppress zipdir output
Cleaned up add_pk3() function a bit
2018-03-09 15:20:55 +02:00
alexey.lysiuk
25d53ecd2c Enabled position independent executable for generic GCC/Clang
This affects mostly Linux (and probably MinGW) as default toolchains for Windows and macOS have the corresponding option turned on by default
2017-12-29 09:39:01 +02:00
Rachael Alexanderson
6044c46d39 - rename wadsrc_optionalassets wadsrc_extra 2017-09-09 05:54:07 -04:00
Rachael Alexanderson
b7f6126bcd - First commit of archive split - preserve original assets
- Added: d_main.cpp now searches for "gzdoom_optional_assets.pk3" - this can be changed in version.h for fork authors.
- Updated forum links to point to ZDoom.org.
2017-09-07 04:08:09 -04:00
alexey.lysiuk
2f3cd7775a Added list of Windows XP compatible toolsets to CMake
When generating projects for Visual Studio 2017 with v141_xp toolset CMake no longer warns about incompatibility with Windows XP
2017-08-23 18:02:44 +03:00
alexey.lysiuk
680d1b2dd6 Moved all CMake modules and launcher templates to designated directory
Let's not pollute root directory with various files
2017-04-23 14:49:36 +03:00
Christoph Oelckers
f0d741241d - cleaned out most of the cruft from the docs directory and added a copy of the GPL v3. 2017-04-17 10:24:24 +02:00
Christoph Oelckers
c219811a54 - removed FMod as the last remaining piece of code that is not GPL compatible.
Please consider GZDoom as licensed under the GPL starting with this commit, even though the license headers have not been changed yet.
2017-04-17 01:06:54 +02:00
Christoph Oelckers
4cd0d3d454 - removed the Vector class in the GL renderer and replaced all its uses with FVector3.
- optimized the math to get a plane equation from a linedef. The original code used a generic algorithm that knew nothing about the fact that Doom walls are always perfectly vertical. With this knowledge the plane calculation can be reduced to a lot less code because retrieving the normal is trivial in this special case.
- use the SSE2 rsqrtss instruction to calculate a wall's length, because this is by far the most frequent use of square roots in the GL renderer. So far this is only active on x64, it may be activated on 32 bit later as well, but only after it has been decided if 32 bit builds should be x87 or SSE2.

# Conflicts:
#	src/gl/dynlights/gl_dynlight.cpp

# Conflicts:
#	src/g_shared/a_dynlightdata.cpp
2017-03-12 19:59:45 +01:00
Christoph Oelckers
ef3421eee5 - moved dynamic lights out of the GL code into the common game code.
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
2017-03-12 19:57:06 +01:00
Rachael Alexanderson
536e8fad19 - Make QZDoom GZDoom again! 2017-03-09 11:51:42 -05:00
Magnus Norddahl
735157aea4 Bump minimum architecture to SSE 2 on the x86 platform (a Pentium 4 from 2001!) 2017-02-25 01:22:54 +01:00