Commit graph

191 commits

Author SHA1 Message Date
Magnus Norddahl
9675ac978d Apply a simple box filter on the subpixels 2024-01-02 16:55:27 +01:00
Magnus Norddahl
71ff4d3685 Load widget resources from lumps
Add banner
2024-01-02 16:55:17 +01:00
Magnus Norddahl
3f50136c8d Create initial error and netstart windows 2024-01-02 16:55:17 +01:00
Magnus Norddahl
b7362aa3f2 Add a bit more functionality to the controls 2024-01-02 16:55:17 +01:00
Magnus Norddahl
113fdc5fcc Add zwidget 2024-01-02 16:54:51 +01:00
Cacodemon345
61b7a4922a Fix typo 2023-10-07 17:31:24 +02:00
Cacodemon345
07582a6bf7 Remove Aes, BraIA64.c and Lzma86 files 2023-10-07 17:31:24 +02:00
Cacodemon345
56c44182d1 Fix wrong define for PPMd 2023-10-07 17:31:24 +02:00
Cacodemon345
4497d7fdaa Update LZMA SDK to 23.01
As a bonus, add support for XZ-compressed files in ZIP
2023-10-07 17:31:24 +02:00
Magnus Norddahl
cfe30c1d47 Fix stdexcept include errors 2023-09-18 04:59:13 -04:00
Cacodemon345
ba9ce0e83f Switch to miniz from zlib 2023-09-17 23:52:51 +02:00
Magnus Norddahl
45a2cbe081 Update zvulkan to latest version 2023-09-16 00:32:15 -04:00
alexey.lysiuk
76734201e6 - updated zlib to 1.3
https://www.zlib.net/zlib-1.3.tar.gz
2023-09-13 12:50:42 +03:00
Romain Tisserand
06f13006ca Allows building gzdoom with Vulkan with either X11 or Wayland WSI integration through CMake options 2023-09-07 10:17:12 -04:00
Christoph Oelckers
351e0d7ed9 - removed obsolete CMake version requirements.
Most were still at 3.1 which prompts noisy warnings from up-to-date CMake versions.
Version requirements have been removed entirely from dependent subprojects, all others were upped to 3.16.
2023-09-03 09:04:17 +02:00
Christoph Oelckers
4baabf98c4 - use stb-image for JPEG decoding.
the statically provided library did not provide any advantage over it whatsoever and even libjpeg-turbo's better performance cannot really play out here so ease of use and getting rid of a dependency wins.
2023-09-03 08:34:58 +02:00
Christoph Oelckers
fdad3186a6 - replaced zstrformat with stb_sprintf.
The main advantage here is that this allows to get rid of the gdtoa dependency, it is also preferable to have some code here that's being maintained.
Feature-wise both are mostly identical, stb also support MSFT integer size modifiers and hexadecimal floats.
2023-08-09 11:51:46 +02:00
Jan Engelhardt
a6b9dd0c30 build: resolve missing includes under gcc-13
$ make
...
~/gzdoom/libraries/ZVulkan/src/vulkanbuilders.cpp: In member function ‘std::unique_ptr<VulkanShader> ShaderBuilder::Create(const char*, VulkanDevice*)’:
~/gzdoom/libraries/ZVulkan/src/vulkanbuilders.cpp:168:28: error: ‘runtime_error’ is not a member of ‘std’
~/gzdoom/libraries/ZVulkan/include/zvulkan/vk_mem_alloc/vk_mem_alloc.h: In function ‘void VmaUint32ToStr(char*, size_t, uint32_t)’:
~/gzdoom/libraries/ZVulkan/include/zvulkan/vk_mem_alloc/vk_mem_alloc.h:2410:9: error: ‘snprint ’ was not declared in this scope
2023-03-31 08:01:55 -04:00
Christoph Oelckers
47b76180d6 - fixed several warnings emitted by Clang. 2023-03-26 08:48:54 +02:00
alexey.lysiuk
7b2d54da35 - updated zlib to 1.2.13
https://zlib.net/zlib-1.2.13.tar.gz
2023-01-13 09:51:29 +02:00
Magnus Norddahl
7b864fd665 Add vulkan pipeline cache 2022-12-19 17:40:27 +01:00
Christoph Oelckers
79a38f1f3a Merge branch 'master' of https://github.com/coelckers/gzdoom 2022-12-18 15:21:42 +01:00
Christoph Oelckers
e17e6868e6 - removed bogus errno check from Dehacked parser.
This checked errno without first confirming that there has been an error, it is also pointless because the value range check will automatically catch the error case as well.
2022-12-11 21:08:22 +01:00
alexey.lysiuk
561bce40fc
- removed clangformat from discord-rpc 2022-12-11 17:15:09 +02:00
Magnus Norddahl
03ab65ab1e Fix linux compile errors from the zvulkan switch 2022-12-05 07:49:43 +01:00
Magnus Norddahl
6a005e3a2a Switch vulkan backend to use the zvulkan library 2022-12-05 07:49:43 +01:00
Rachael Alexanderson
37da5268e1 - remove clang-format directives 2022-11-08 11:01:50 -05:00
alexey.lysiuk
7afcf43f20 - disabled discord-rpc debug info for configurations without it 2022-08-29 10:42:07 +03:00
Magnus Norddahl
386cb5bfb2 Mute some warnings 2022-06-22 07:55:19 +02:00
Magnus Norddahl
dba514a2cf Fix CMakeLists.txt missing file error 2022-06-22 07:55:19 +02:00
Magnus Norddahl
5cc21c5a4a Upgrade glslang to 11.10.0 2022-06-22 07:55:19 +02:00
Magnus Norddahl
5e9906e3d3 Upgrade glsl compiler to 11.6.0 2022-06-22 07:55:19 +02:00
alexey.lysiuk
201652bb36 - removed useless linker flags set by Discord RPC for macOS
This fixes lots of 'object file was built for newer macOS version than being linked' warnings
2022-04-17 16:52:00 +03:00
alexey.lysiuk
4049a0d8f1 - updated zlib to 1.2.12
https://www.zlib.net/zlib-1.2.12.tar.gz
2022-03-31 09:47:31 +03:00
Christoph Oelckers
701b7c3902 - silence the noisy warning output of the discordrpc subproject. 2022-03-17 08:14:08 +01:00
Rachael Alexanderson
bfd0f8fa0a - silence error C5045 in MSVC 2022-03-11 11:02:55 -05:00
Rachael Alexanderson
47333badba - remove extra rapidjson library, use internal one from gzdoom instead 2022-03-11 10:55:30 -05:00
Rachael Alexanderson
e212fa1310 - remove drpc example files 2022-03-10 15:12:18 -05:00
Rachael Alexanderson
18def622b4 - remove examples from DiscordRPC library - we don't need them. the library is freely available for anyone who needs them. 2022-03-10 15:09:53 -05:00
Rachael Alexanderson
85c432c699 - Discord RPC presence. Adds new IWADINFO and GAMEINFO keys: DiscordAppId - this should point to your AppId for your game. It will use a default GZDoom one if not found. 2022-03-09 22:45:59 -05:00
alexey.lysiuk
6aea7694bc - updated LZMA to 21.07
https://www.7-zip.org/sdk.html
https://www.7-zip.org/a/lzma2107.7z
2022-01-01 15:58:40 +02:00
drfrag
bb8534ed00 Fix LZMA compilation with VS 32 bit.
(patch by Igor Pavlov)
2021-11-29 16:17:47 +01:00
alexey.lysiuk
9fac6058b7 - enabled LZMA multithreading on all platforms 2021-11-27 17:02:12 +02:00
alexey.lysiuk
121b89306a - updated LZMA to 21.06
https://www.7-zip.org/sdk.html
https://www.7-zip.org/a/lzma2106.7z
2021-11-27 17:00:53 +02: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
alexey.lysiuk
0036f7fade - fixed wrong gdtoa definitions for Apple ARM64
https://forum.zdoom.org/viewtopic.php?t=71303
2021-01-28 12:56:10 +02:00
William Breathitt Gray
63aeea5b9e Force STATIC for internal GZDoom SPIRV library
This makes sure the internal version of this library bundled with the
GZDoom source code is used. This prevents the system from building
GZDoom for dynamic linking with an incompatible external library (see
commit 6fafa297bf and
<https://forum.zdoom.org/viewtopic.php?f=2&t=64633>).
2020-06-21 15:52:31 +03:00
Christoph Oelckers
c485256c74 Merge remote-tracking branch 'remotes/origin/zmusic_dll' 2020-02-15 10:22:45 +01:00
Magnus Norddahl
a056307218 Upgrade glslang to 8.13.3559 (stable release January 6, 2020) 2020-02-15 08:51:03 +01:00
Christoph Oelckers
2dd3c28d05 - transitioned engine to use ZMusic as a DLL. 2020-02-09 08:56:49 +01:00
alexey.lysiuk
c466422095 - fixed uninitialized variable in OPL song
Mono streams could be erroneously treated as stereo, doubling their playback speed

https://forum.zdoom.org/viewtopic.php?t=66939
2020-01-12 18:02:26 +02:00
Petr Mrázek
3c20d5fe88 - Run the Alsa MIDI thread every 40ms or so, use non-blocking sequencer 2020-01-04 20:19:36 +01:00
Christoph Oelckers
829d43baed - fixed warnings. 2020-01-04 09:44:48 +01:00
Rachael Alexanderson
3e4d53e8b6 - add EnumerateDevices for alsa per suggestion of the original author 2020-01-03 10:35:13 -05:00
Rachael Alexanderson
fabf3d8ca4 - fix compiler error with Alsa enumeration 2020-01-02 20:21:10 -05:00
Christoph Oelckers
8898448014 - refactored the MIDI list code.
Let's hope nothing got broken on the Linux side, the recent submission's code was not usable.
2020-01-02 14:21:26 +01:00
Christoph Oelckers
f442d2dc54 - made the sound decoding interface DLL friendly and added compile switches to the MIDI players so that different licenses can be uses as compile target. 2020-01-02 12:43:37 +01:00
Christoph Oelckers
77a20ea7d1 - forgot to save this one. 2020-01-02 08:47:03 +01:00
Christoph Oelckers
71cd4ef488 Merge branch 'master' of https://github.com/coelckers/gzdoom
# Conflicts:
#	libraries/zmusic/zmusic/mididefs.h
#	libraries/zmusic/zmusic/zmusic.h
2020-01-02 08:45:48 +01:00
Petr Mrázek
ea1b8de405 - Support for MIDI on Linux via alsa sequencer 2020-01-02 08:29:39 +01:00
Christoph Oelckers
d2ca1ea4e0 - rewrote the ZMusic interface so that it is free of C++ constructs.
Now it is ready to put in a DLL.
2020-01-02 01:26:01 +01:00
Christoph Oelckers
0d000344ca - replaced the C++ based file access wrapper in ZMusic with a C compatible version. 2020-01-01 22:54:27 +01:00
Christoph Oelckers
527fb40a5f - there's no need to let the XM Vorbis decoder run through the client - all related functionality is part of ZMusic itself. 2020-01-01 20:58:15 +01:00
Christoph Oelckers
47d70c839d - made adjustments to the remaining parts of the function interface. 2020-01-01 20:47:33 +01:00
Christoph Oelckers
7923d25cce - made the ZMusic interface more DLL friendly: Reworked all functions not to throw exceptions across the library boundary and made a few definitions internal.
Not complete yet.
2020-01-01 20:01:38 +01:00
Christoph Oelckers
c24f9b42ba - the timidity safe_malloc functions may not throw exceptions.
There is a high chance of them getting called within the stream servicing function which cannot deal with abnormal conditions, so the only choice here is performing a hard abort.
2020-01-01 17:34:37 +01:00
Christoph Oelckers
fe0a6b00ce - blocked the destructor in the sound font reader base class.
If ZMusic is to act like an external library it may not call delete on external objects because there is no guarantee that they use the same allocator. Deletion must be done as a virtual function to ensure that the correct operator delete gets called, which, unlike the actual destructor is not virtual itself.
2020-01-01 16:11:39 +01:00
Christoph Oelckers
0ee0034beb - apply the ZMusic mutex a bit more finely grained.
It should only guard the critical parts, like calling Stop() but can let Update and IsPlaying method work unhindered otherwise.
2019-10-20 16:16:40 +02:00
alexey.lysiuk
1deade93cf - fixed playback of gzip compressed music
https://forum.zdoom.org/viewtopic.php?t=66157
2019-10-19 11:40:01 +03:00
alexey.lysiuk
230da2e2b9 - fixed SPC music looping after update to GME 0.6.2
Why was the default player setup changed at all?

https://forum.zdoom.org/viewtopic.php?t=65863
2019-10-18 10:25:24 +03:00
alexey.lysiuk
50a876906e - added declarations missing from update to GME 0.6.2 2019-10-18 10:22:35 +03:00
Christoph Oelckers
4d8f0fc014 - fixed: ZMusic_Close may not lock the mutex because it will delete it.
Here the calling code must ensure that the music object won't be accessible anymore before it gets deleted.
2019-10-15 01:16:02 +02:00
Christoph Oelckers
6854a509e9 - Moved all music related synchronization to the top level
Most of the synchronization was too deep in the implementation so that it did not guard everything it needed.

Now each song has precisely one mutex which must be locked for all access to its internals - this is done in the public ZMusic interface
2019-10-15 00:49:40 +02:00
Christoph Oelckers
dc32c2148a - ZMusic interface refactoring.
Use global functions instead of the class interface which exposed too many implementation details.
2019-10-15 00:23:03 +02:00
alexey.lysiuk
5851de9e0c - added dynamic loading of FluidSynth 2.x 2019-10-13 10:09:51 +03:00
alexey.lysiuk
09dcb247cf - return null instead of throwing exception if CD playback isn't supported
The game should switching to MIDI music on platforms without CD playback support
It was impossible to start Hexen on platforms other than Windows
2019-10-12 09:57:58 +03:00
Christoph Oelckers
18464d571d Merge branch 'exit_cleanup' 2019-10-07 20:35:15 +02:00
Christoph Oelckers
523fd0bf3a Revert "AsmJit update"
This reverts commit 747b3dfcfe.

# Conflicts:
#	libraries/asmjit/asmjit/core/compiler.h

This had to be reverted because it breaks exception handling which is a critical problem.
With the updated code any exception thrown inside code that had a JITed call stack would crash.
2019-10-07 20:34:55 +02:00
alexey.lysiuk
53949e05f3 - handled differences of values returned by fluid_settings_...() functions
FluidSynth 1.x: these functions return 1 on success and 0 otherwise
FluidSynth 2.x: these functions return  FLUID_OK (0) on success and FLUID_FAILED (-1) otherwise
2019-10-07 12:32:40 +03:00
alexey.lysiuk
59f649700f - fixed setting of FluidSynth reverb and chorus 2019-10-07 12:20:56 +03:00
alexey.lysiuk
d7289f6469 - fixed compilation with old versions of Xcode
libraries/zmusic/mididevices/music_fluidsynth_mididevice.cpp:628:3: error: use of undeclared identifier 'free'
2019-10-06 14:28:49 +03:00
alexey.lysiuk
b02ef69d49 - cleaned POSIX compiler arguments for libraries
Removed omission of frame pointers as it makes crash reports much less useful
Modified warning flags to hide annoying reports for external code
2019-10-05 15:02:10 +03:00
alexey.lysiuk
46270326be - implemented str(n)icmp function definitions via CMake macro 2019-10-05 14:47:36 +03:00
alexey.lysiuk
c09f196141 - applied fast math flags to C and C++ files
Avoid copy-paste using CMake macro
2019-10-05 14:41:21 +03:00
alexey.lysiuk
ace677b8a3 - fixed: soundfont selection for FluidSynth was ignored 2019-10-05 11:23:46 +03:00
alexey.lysiuk
7780f774f9 - fixed: mode argument was ignored by utf8_fopen() on POSIX platforms 2019-10-05 11:02:19 +03:00
alexey.lysiuk
1d9b5cb239 - restored ability to link with thirdparty sound libraries explicitly
DYN_SNDFILE=NO and DYN_MPG123=NO were ignored while DYN_FLUIDSYNTH=NO broke compilation
These options should be applied to ZMusic target instead of the main executable
As a bonus, it's now possible to build GZDoom without FluidSynth
2019-10-03 12:22:46 +03:00
Christoph Oelckers
d2c156224b - cleanup of the sound init/exit code.
Now there is only one single entry point for both, instead of previously 2 entry and 4 exit points.
This also eliminates the explicit shutdown of ZMusic. Timidity++'s two buffers have been put in containers that self-destruct on shutdown and calling dumb_exit is not necessary because the only feature requiring it is not used by any code in the music library.
2019-10-01 20:04:46 +02:00
Christoph Oelckers
86ab366958 - some reformatting on exit code, mainly to make searching for the content easier. 2019-10-01 19:06:28 +02:00
alexey.lysiuk
8ff51ca129 - fixed build issues with POSIX targets 2019-10-01 12:06:24 +03:00
Christoph Oelckers
9bb8da2533 - fixed the CDDA check to not catch all RIFF files. 2019-09-30 19:57:47 +02:00
Christoph Oelckers
a76cdd0946 - fixed crash with non-looping music ending.
In this case it was the song terminating the stream, with the new setup the main music code has to do this itself.
2019-09-30 19:41:03 +02:00
Christoph Oelckers
83e8e5535d - fixed compilation on Windows. 2019-09-30 18:21:34 +02:00
Christoph Oelckers
2bc72f38cc - renamed a few functions in the public interface of ZMusic. 2019-09-30 02:40:22 +02:00
Christoph Oelckers
02507effe8 - moved the music loader code to ZMusic.
This was the final piece of code reorganization.

What's left is cleaning up the interface.
2019-09-30 02:35:47 +02:00
Christoph Oelckers
c42deda6e6 - cleanup of the remaining music code in the main project 2019-09-30 02:31:12 +02:00
Christoph Oelckers
d0cf21654e - moved the CD Audio code to ZMusic, too.
This was the last player class.
This code was also cleaned up for non-Windows systems where CD Audio is not implemented.
Instead of providing an empty implementation, all related code is now explicitly deactivated.
2019-09-30 02:22:53 +02:00
Christoph Oelckers
352365189f - moved the main music classes to ZMusic
What's left is the CD-Audio playback and some global functions.
2019-09-30 02:10:00 +02:00
Christoph Oelckers
6bfa1bf692 - fixed compilation with XCode and silenced several warnings 2019-09-30 01:51:53 +02:00
Christoph Oelckers
2c33e47988 - hooked up a few more CVARs and other values the music backend needs to know about and moved the MusInfo base class into zmusic. 2019-09-30 01:34:16 +02:00