Commit graph

1207 commits

Author SHA1 Message Date
alexey.lysiuk
f5a98ed7fa - fixed CMake configuration
CMake Error at src/CMakeLists.txt:1188 (add_executable): Cannot find source file: gamedata/textures/bitmap.cpp
2020-04-12 10:59:09 +03:00
Christoph Oelckers
ab8d2ef62d - fixed serializer.
All includes of RapidJSON *must*(!!!) have the same #defines, otherwise incompatible code will be generated without any hint of a warning.
2020-04-11 22:53:26 +02:00
Christoph Oelckers
8f8aed5ee3 - moved bitmap.cpp to 'common' and remove the duplicate IceRemap. 2020-04-11 20:23:26 +02:00
Christoph Oelckers
0cb2a1b8e9 - moved gl_load to common. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
5fe22c70b5 - moved the 2D drawer to 'common'. 2020-04-11 20:20:59 +02:00
Christoph Oelckers
932f5c64c2 - moved stats.cpp to common. 2020-04-11 20:20:57 +02:00
Christoph Oelckers
3bf7686cfb - moved v_text.cpp to 'common'. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
2e5bc3e962 - moved compiler frontend to 'common'. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
466ed4e8f2 - separated the Doom specific parts of the ZScript parser from the core into a subclass. 2020-04-11 20:20:56 +02:00
Christoph Oelckers
a28182fe35 - moved the script compiler's backend to 'common'. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
3454314bb1 - separated the Doom specific parts from the compiler backend into a separate file, these parts now get invoked via callback hooks. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
64dc9ac456 - moved around some bits of code. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
1ce11ff02a - dictionary can also go to 'common'. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
f6bd2e4f76 - moved serializer to 'common'. 2020-04-11 20:20:54 +02:00
Christoph Oelckers
7b292cca57 - split the serializer in two to keep the Doom specific parts out of the main file. 2020-04-11 20:20:53 +02:00
Christoph Oelckers
f8ac9a2662 - moved DObject and core parts of the VM to 'common'.
# Conflicts:
#	src/common/objects/dobject.h
2020-04-11 20:20:51 +02:00
Christoph Oelckers
940f1dc9a2 - move font code to 'common'.
- fix use of translation slot 0, used for internal translations.
2020-04-11 20:20:40 +02:00
Christoph Oelckers
2dcf63c57d - backport some fixes from Raze - mostly redundant includes. 2020-04-11 20:20:39 +02:00
Christoph Oelckers
65f15e1147 - moved the material class to 'common' as well. 2020-04-11 20:20:38 +02:00
Christoph Oelckers
580e463498 - moved texture code to 'common'. 2020-04-11 20:20:38 +02:00
Christoph Oelckers
5bde737be9 - split buildtexture.cpp in two.
The texture itself is 'common', but the setup is not.
2020-04-11 20:20:38 +02:00
Christoph Oelckers
3e285d2261 - moved renderstyle and colortables code to 'common'. 2020-04-11 20:20:37 +02:00
Christoph Oelckers
a13c7bd053 - moved sound code to "common". 2020-04-11 20:20:35 +02:00
Christoph Oelckers
cd9e2d3795 - moved music code to "common". 2020-04-11 20:19:55 +02:00
Christoph Oelckers
4af96bab47 - some cleanup on music code.
* change the license of the main file because there is no more id-based code here licensed under the GPL.
* moved VM interface definition out of the implementation.
* moved idmus CCMD out of implementation because it is dependent on Doom level definitions.
* moved s_music.cpp into the music folder with the rest of the music code.
2020-04-11 20:19:54 +02:00
Christoph Oelckers
56f2b2ac56 - reduce backend's dependency on game state by using callbacks. 2020-04-11 20:19:53 +02:00
Christoph Oelckers
f94e4a908c - m_png is common. 2020-04-11 20:19:52 +02:00
Christoph Oelckers
db62aeb671 - c_cmds is not 'common'. 2020-04-11 20:19:52 +02:00
Christoph Oelckers
777f2ee7c6 - moved stringtable to 'common'. 2020-04-11 20:19:51 +02:00
Christoph Oelckers
c3a381ed92 - moved most of the console code to 'common'.
The main console.cpp file cannot be done yet, but the rest is ready to go.
2020-04-11 20:19:51 +02:00
Christoph Oelckers
a712866219 - split out non-game specific CCMDs into their own file. 2020-04-11 20:19:51 +02:00
Christoph Oelckers
603ad755ab - separated the button code from c_dispatch.
Two separate features justify two separate files.
2020-04-11 20:19:24 +02:00
Christoph Oelckers
76db26ee0b - split off the console's command line class into its own file. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
05239c63f9 - moved some palette related code into the 'common' folder. 2020-04-11 14:00:22 +02:00
Christoph Oelckers
c713850dac - moved sc_man and palettecontainer to the 'common' folder. 2020-04-11 14:00:21 +02:00
Christoph Oelckers
98472d999b - moved name.cpp to 'common'.
Still got to find a way to handle namedef.h without polluting the low level code with game content.
2020-04-11 14:00:21 +02:00
Christoph Oelckers
05d8856fe0 - moved file system implementation to 'common'. 2020-04-11 14:00:20 +02:00
Christoph Oelckers
510fc2d549 - added handler for Witchaven's sound resource files.
Useful for loading these to play the MIDIs. Since these files have no named directory, the content just gets inserted into a subdirectory named after the file with each entry given a 4 digit hex number as a name.
2020-04-11 14:00:17 +02:00
Christoph Oelckers
2e258e8cdb - include cleanup in Win32 folder. 2020-04-11 14:00:15 +02:00
Christoph Oelckers
d523da1313 - make DumpCPUInfo return a string instead of letting it print the info itself. Also consolidated I_Init, because both existing versions were identical. 2020-04-11 14:00:15 +02:00
Christoph Oelckers
76352dd9b3 - moved the last remaining utilities. 2020-04-11 14:00:14 +02:00
Christoph Oelckers
5a1c4693de - moved SFMT to 'common'.
Now it is third party code with no hooks into higher level dependencies.
2020-04-11 14:00:14 +02:00
Christoph Oelckers
9ef6b15bfa - moved more stuff and split FRandom in two so that the high level baggage does not need to be pulled in to use the RNG. 2020-04-11 14:00:14 +02:00
Christoph Oelckers
fb1a7679ec - moved most basic utility code without any dependencies on the rest of the engine to 'common' directory.
Again the objective is easier sharing with Raze.
2020-04-11 14:00:13 +02:00
Christoph Oelckers
6996d54a23 - moved more code to 'common'.
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
e230420f88 - moved all character set utilities to utf8.cpp.
- moved matrix class to 'common'.
2020-04-11 14:00:12 +02:00
Christoph Oelckers
669e8fbe48 - started some reorganization of low level utility code by moving all third party dependencies to a separate place. 2020-04-11 14:00:12 +02:00
Christoph Oelckers
820fe8b3f9 - split off the container for the translation data into its own file. 2020-04-11 14:00:11 +02:00
Christoph Oelckers
b0ecb02d6b - move SuperFastHash to its own set of files, instead of having this tied to the console.
- replace swapvalues with std::swap globally.
- added some additions to utility code from Raze, mainly to reduce file content differences.
- reduced some unused utilities
2020-04-11 14:00:10 +02:00
Christoph Oelckers
cc48f18303 - moved the dictionary implementation into the 'scripting' folder where it really belongs. 2020-04-11 14:00:09 +02:00
Christoph Oelckers
5490ffcd77 - removed the obsolete Doomsday 1.8-style texture pack support.
This poorly integrated into the texture system and wasn't compatible with modern texture packs anymore so its usefulness was questionable.
2020-04-04 12:55:24 +02:00
drfrag
68f338b134 - Fixed compilation with MinGW and did some cleanup. 2020-02-16 09:39:17 +02:00
dondiego
e13e034cc4
SoftPoly only worked with Vulkan support on POSIX platforms (#1036)
* - CMake: fix wrong filename.

* - Fixed: SoftPoly only worked with Vulkan support on POSIX platforms.
2020-02-15 17:41:52 -05:00
Christoph Oelckers
c485256c74 Merge remote-tracking branch 'remotes/origin/zmusic_dll' 2020-02-15 10:22:45 +01:00
alexey.lysiuk
2bde2d8268 - fixed 32-bit Linux build with SSE support enabled 2020-02-13 15:29:48 +02:00
alexey.lysiuk
a1b5ab6e9b - added ZMusic library detection to CMake configuration 2020-02-09 15:51:50 +02:00
Christoph Oelckers
2dd3c28d05 - transitioned engine to use ZMusic as a DLL. 2020-02-09 08:56:49 +01:00
Braden Obrzut
62e9e0cbbb - Change updaterevision to a CMake script
The benefit to this is fairly small, but it does mean a little less work needs
to be done in the build scripts for cross compiling. The C version wasn't
especially concise so it was not obviously better in any way.
2020-02-02 11:43:36 +01:00
alexey.lysiuk
d425d8d9ca - put common POSIX system code to a separate file 2020-01-26 11:01:13 +02:00
Magnus Norddahl
e43894213e Remove softpoly specific matrix and vector classes 2020-01-18 13:56:37 +01:00
Alexander Kromm
703686beee export TMap<FString, FString> to ZScript 2019-12-29 13:37:38 +01:00
Magnus Norddahl
5632c80ab2 Split softpoly into more files 2019-12-15 17:14:23 +01:00
Christoph Oelckers
83349bee1b - separated reverb data and reverb editor.
Again, isolating the part that is game independent from parts that are specific to GZDoom.
2019-12-08 21:45:45 +01:00
Christoph Oelckers
fd181f469d - reduced the dependency of the sound system on game state.
Many of the simple wrappers have been moved to a separate file and the sound source handling has been abstracted.
This is only the first phase, the work is not complete yet.
Also changed the license of the sound code to BSD after verifying that this code bears no similarity to id's original sound code anymore, save for a few function names (which are due to be refactored out anyway.)
2019-12-08 13:28:52 +01:00
Magnus Norddahl
74c6b9fe6d Remove PolyDrawArgs 2019-12-02 00:21:42 +01:00
Magnus Norddahl
4a25c9f69b Merge remote-tracking branch 'origin/master' into polybackend 2019-12-01 20:09:19 +01:00
Christoph Oelckers
81753e5ffb - moved the level postprocessor to its own source file. 2019-11-10 21:28:01 +01:00
alexey.lysiuk
4ae16c27e2 - added Visual Studio debugger visualization for several types 2019-10-23 20:15:55 +02:00
alexey.lysiuk
bb5ca2ce39 - deleted leftovers of exit refactoring 2019-10-12 12:43:49 +03:00
Christoph Oelckers
2e7af1338c - the big cleanup of the exit cleanup is done!
atterm is gone and only a few system-side functions use atexit.
All game side cleanup is performed in D_DoomMain now.
2019-10-07 20:28:55 +02:00
Christoph Oelckers
5a72e0bfb7 - added a new texture class using stb_image to read a more formats.
This implementation only reads GIF, BMP and PIC formats. No animated GIF support because stb_image does not handle that.
PNG, JPG and TGA are still being handled by the existing dedicated implementations.
PSD and HDR are impractical for reading texture data and thus are disabled.
PnM could be enabled, if its identification semantics were stronger. stb_image only checks the first two characters which simply would falsely identify several flats with the right colors in the first two bytes.

This is more or less a waste product of getting stb_image to work with something actually testable, so it is just provided as-is.
2019-10-06 08:37:23 +02:00
alexey.lysiuk
46270326be - implemented str(n)icmp function definitions via CMake macro 2019-10-05 14:47:36 +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
b0acfc3ce6 - split up st_start.cpp into one file with the Windows interface code and a second one which only contains platform independent code.
Since this made heavy use of Windows type, those were duplicated to avoid rewriting the entire interface.
This split at least reduces the amount of code needed to refactor for making the screens work on other platforms than Windows.
2019-10-01 23:00:13 +02:00
Christoph Oelckers
2b87941d7d Merge branch 'master' into zmusic_work
# Conflicts:
#	src/sound/music/i_musicinterns.h
2019-09-30 17:48:34 +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
b9b706e951 - renamed the configuration file. 2019-09-29 22:03:14 +02:00
Christoph Oelckers
859028b35a - moved the stream sources to zmusic project. 2019-09-29 13:33:09 +02:00
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
alexey.lysiuk
9f190e76e3 - disabled code signing in Xcode by default
It’s impossible to build GZDoom without valid code signing identity with Xcode 11 using a project
2019-09-28 13:32:31 +03:00
Christoph Oelckers
67169b80e5 - split out the MIDIDevice implementation into its own source file. 2019-09-28 07:47:50 +02:00
Christoph Oelckers
9b0529b8a3 - removed most dependencies on ZDoom code in ADL Midi device. 2019-09-26 21:29:06 +02:00
Christoph Oelckers
d3df422031 - made the OPL synth backend a separate library. 2019-09-26 20:06:39 +02:00
Christoph Oelckers
b085ac3efb - cleaned up the dependencies of the OPL interface layer.
This also removes the OPL dumper because I wasn't able to get any non-broken output from it and have no desire to fix such a niche feature.
2019-09-26 19:33:28 +02:00
Christoph Oelckers
b8824b572f - adapted the PSX XA decoder from EDuke32 as a music format in GZDoom.
Libsndfile cannot decode this format but tries to play these files as regular WAVs and turns them into noise (Both are in a RIFF container.)
2019-09-25 21:11:00 +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
alexey.lysiuk
ca5ca8e974 - fixed C++ compilation flags applied to C files
This had an effect on 32-bit targets without SSE support
2019-09-24 11:53:18 +03: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
Magnus Norddahl
a410324084 Merge remote-tracking branch 'origin/master' into polybackend 2019-08-25 11:54:45 +02:00
Christoph Oelckers
66db894866 - split off all music code from s_sound.cpp 2019-08-23 17:15:19 +02:00
alexey.lysiuk
c3edfdd946 - temporary solution to fix build of non-MSVC targets
Precompilation of prefix header for GCC and Clang requires some efforts thanks to CMake which doesn't support this feature out of the box
Existing thirparty solutions must be tuned to our needs, and our configuration should be adjusted to a chosen module
2019-08-22 11:30:40 +03:00
Christoph Oelckers
38fec546a7 - moved the generic palette utilities and the matrix class to 'utility' 2019-08-20 23:05:20 +02:00
Christoph Oelckers
cf15ebc966 - inlined the entire ColorMatcher. 2019-08-20 23:05:19 +02:00
alexey.lysiuk
d9dcc26dc6 - set default magnification filter for Metal layer to nearest
Magnification filter is applied to swapchain image when it's copied to a physical display surface
This is needed for gfx-portability because MoltenVK uses nearest sampling by default
2019-08-04 13:37:47 +03:00
Magnus Norddahl
7940d5fe01 Merge remote-tracking branch 'origin/master' into polybackend 2019-08-04 02:22:55 +02:00