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
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
Christoph Oelckers
338ae15a4c
- sanitized exit code a bit
...
Instead of trying a homegrown way to avoid recursive exceptions, let's do it with the defined procedure C++ has for this case: call std::terminate.
This allowed removing some old hackery inherited from Boom and will now hopefully allow sanitizing the exit procedure to the point that it can be done without depending on exit handlers.
2019-10-01 01:37:21 +02:00
Christoph Oelckers
ff40bcd178
- moced I_DetectOS call into D_DoomMain
...
This requires the console and was the reason for this strange setup.
2019-10-01 01:02:49 +02:00
Christoph Oelckers
a1a73ef2b3
- moved the initial C_InitConsole call into D_DoomMain
...
The only difference here were the size values on Windows but for this initial call they have been useless for a long time. When this code was written the console buffer still had a fixed width that needed to be set before adding any text.
2019-10-01 01:00:37 +02:00
Christoph Oelckers
9f15efc5f5
- also put the Windows system specific exit handlers into atexit's list
...
Again, these have no place in the game's own uninit code.
2019-10-01 00:51:14 +02:00
Christoph Oelckers
e7c388dccd
- don't throw exceptions before the system isn't initialized
...
If the window cannot be opened this has no way to report the problem. In this case a message box is needed.
2019-10-01 00:42:21 +02:00
Christoph Oelckers
282047e67c
- added a mapping table from DOS-IBM-437 to Unicode
...
This is for future use, added now so that it won't get lost.
2019-10-01 00:26:07 +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
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
c3f26422df
- changed MIDI sources so that they do not have to include i_musicinterns.h anymore.
...
They were already clean of unwanted external references, but including this file made it hard to keep it that way.
This also moves a few useful definitions around to less 'dirty' headers.
2019-09-25 21:47:33 +02:00
Christoph Oelckers
66db894866
- split off all music code from s_sound.cpp
2019-08-23 17:15:19 +02:00
Christoph Oelckers
3cfda930ea
- removed all Doom specific dependencies from cmdlib.cpp/h.
...
This meant moving CleanseString and ParseHex elsewhere and removing the I_Error call from ScanDirectory.
2019-08-20 23:12:23 +02:00
Christoph Oelckers
8177583e2f
- treat configurations which load a secondary WAD on top of a primary IWAD like SVE to consider the secondary WAD an actual IWAD as well.
...
This fixes localization of the SVE menu.
2019-07-15 20:48:00 +02:00
drfrag
416f5d03b7
- Fixed compilation with MinGW.
2019-07-15 19:26:25 +02:00
Christoph Oelckers
293aa2e6da
- There's really no need anymore to dynamically load RawInput, considering it has been in Windows since XP.
2019-07-14 17:41:25 +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
f50e402e92
- sorted sound backend code into subdirectories.
2019-07-14 16:07:18 +02:00
alexey.lysiuk
aba7132846
- cleaned up language detection leftovers
2019-07-13 15:47:43 +03:00
Christoph Oelckers
953e388e1c
Merge branch 'master' of https://github.com/coelckers/gzdoom
2019-07-07 08:09:14 +02:00
Magnus Norddahl
259909b6dd
- fix querying for the wrong interface when the UNICODE define is set
2019-06-30 21:13:56 +02:00
Magnus Norddahl
6e29d81502
- remove dead code
2019-06-30 21:13:15 +02:00
Christoph Oelckers
1081338af2
- removed a few obsolete definitions from basictypes.h
2019-06-26 22:13:12 +02:00
Christoph Oelckers
e93de62f98
- eliminated dependency of CVar code on AActor.
...
As a low level feature, the CVAR management should not access game structures like actors, just to retrieve a player index. The index should be calculated by the calling code instead and passed into the function.
# Conflicts:
# src/win32/i_specialpaths.cpp
2019-06-26 21:28:45 +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
Christoph Oelckers
2766303cfc
- consolidated the 3 atterm implementations.
...
Each platform had its own copy. Why?
2019-06-10 12:01:01 +02:00
Magnus Norddahl
756c593e96
- create a new error class for vulkan errors as they are only recoverable during initialization (unlike CRecoverableError which is recoverable during normal processing)
...
- improve vulkan errors by including the status code returned by vulkan if they fail
2019-05-23 14:09:05 +02:00
Christoph Oelckers
ec13d0e4c1
Merge remote-tracking branch 'remotes/origin/vulkan2'
2019-04-22 10:45:32 +02:00
Christoph Oelckers
e6ab678515
- fixed: The minimal window size was not calculated properly.
...
Minimum size is 640x400 client size not 640x400 window size in non-fullscreen.
2019-04-22 10:20:39 +02:00
Magnus Norddahl
62fa74485d
Merge remote-tracking branch 'origin/master' into vulkan2
2019-04-19 18:49:00 +02:00
Christoph Oelckers
327a83a54b
- fixed: GetDisplayDeviceName must always pick a valid monitor.
...
There is no default here, so if vid_adapter is invalid for whatever reason the engine would crash without a defined setting.
2019-04-19 07:33:51 +02:00
Rachael Alexanderson
09a2b53b21
- rename vid_backend
to vid_enablevulkan
. Also changed the CVAR from a 0-state enable to 1-state. So vid_enablevulkan==1
enables vulkan now. This should be less confusing.
2019-04-16 08:10:57 -04:00
Christoph Oelckers
ab256945aa
- use I_Error for throwing errors in the Vulkan backend and print the message if one gets thrown during init.
2019-04-08 23:48:46 +02:00
Rachael Alexanderson
f4ea44b760
- consolidate minimum screen resolution so that it's easier to change
2019-04-07 06:56:06 -04:00
Rachael Alexanderson
efa9284141
- consolidate minimum screen resolution so that it's easier to change
2019-04-07 06:49:54 -04:00
Rachael Alexanderson
e48d2105ef
Merge branch 'master' of https://github.com/coelckers/gzdoom into vulkan2
2019-04-06 00:27:18 -04:00
Christoph Oelckers
0153c2aefa
- use the Unicode version of GetCommandLine for the crash log.
2019-04-04 17:49:53 +02:00
alexey.lysiuk
025e50219f
- fixed missing command line in crash reports
...
https://forum.zdoom.org/viewtopic.php?t=64149
2019-04-04 16:37:51 +03:00
Rachael Alexanderson
ead3695844
Merge branch 'master' of https://github.com/coelckers/gzdoom into vulkan2
...
# Conflicts:
# src/posix/sdl/gl_sysfb.h
2019-03-31 03:49:08 -04:00
Christoph Oelckers
ab16d3cd72
- limit minimum screen size to 640x400.
...
The current menu system simply does not work that well with 320x200, rendering the game hard to use at that tiny screen size. This is a clear case where the work required to keep it operational stands in no relation to the benefit.
2019-03-31 09:13:22 +02:00
Magnus Norddahl
9f0f659db0
- remove old vid_maxfps implementations as they were garbage anyway and the new one works on all the platforms
2019-03-26 11:10:17 +01:00
Christoph Oelckers
a0b0467e91
- restrict Vulkan to 64 bit builds.
2019-03-24 14:34:48 +01:00
Rachael Alexanderson
dd4ef010ab
Merge remote-tracking branch 'origin/master' into vulkan2
2019-03-18 04:05:19 -04:00
Christoph Oelckers
714c656753
- set a Unicode capable font for the Windows console.
...
The default raster font only contains the OEM 437 code page which is quite useless.
2019-03-16 10:50:53 +01:00
Christoph Oelckers
dbd6c2eabf
- removed the automatic system language detection for Windows.
...
Default language is now always American English, just like on Linux and macOS.
2019-03-16 00:07:18 +01:00
alexey.lysiuk
7b5eedea32
- implemented OpenGL / Vulkan switch in SDL backend
2019-03-12 16:12:14 +02:00
Rachael Alexanderson
6be5769746
- implement backend switcher for Windows. NYD: Still needs to be done for Mac and Linux
2019-03-11 23:36:44 -04:00
Rachael Alexanderson
879aae1bd3
Merge branch 'master' of https://github.com/coelckers/gzdoom into vulkan2
2019-03-11 22:07:46 -04:00
Christoph Oelckers
eb4eb1ac00
- use a wide string for the console input buffer.
...
Since this needs to do cursor positioning calculations it's the one spot in the entire engine where UTF-8 would simply be to messy, especially when having to deal with double wide characters.
2019-03-10 17:54:03 +01:00