Latest GZDoom Changes

Latest 50 commits, skipping 50

Unofficial development builds at DRD Team

Newer commits | Older commits

07-Oct-2019 (Monday) at 13:35:15 CDT by Christoph Oelckers

Merge branch 'exit_cleanup'

07-Oct-2019 (Monday) at 13:34:55 CDT by Christoph Oelckers
Commit 523fd0bf3
Parents: 2e7af1338

Revert "AsmJit update"

This reverts commit 747b3dfcfe5a3823cf4656a23a0afa15b6a49f36.



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.

07-Oct-2019 (Monday) at 13:28:55 CDT by Christoph Oelckers
Commit 2e7af1338
Parents: 6f821a919

  • 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.

07-Oct-2019 (Monday) at 11:59:18 CDT by Christoph Oelckers
Commit 6f821a919
Parents: ff379e7c0

  • fixed compilation on Windows.

07-Oct-2019 (Monday) at 04:32:40 CDT by alexey.lysiuk
Commit 53949e05f
Parents: 59f649700

  • 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

07-Oct-2019 (Monday) at 04:20:56 CDT by alexey.lysiuk
Commit 59f649700
Parents: d7289f646

  • fixed setting of FluidSynth reverb and chorus

06-Oct-2019 (Sunday) at 18:24:51 CDT by Christoph Oelckers
Commit ff379e7c0 (exit_cleanup)
Parents: 5d265d2d8

replaced all 'exit's with an ExitEvent exception

The main exits are initiated from code that cannot filter this back to D_DoomMain easily so the exception is the only way to get there.

The 3 main points of exit are:

  • quit/exit CCMD
  • quitting the menu through ST_Endoom
  • receiving a quit message on the main window.

06-Oct-2019 (Sunday) at 18:11:53 CDT by Christoph Oelckers
Commit 5d265d2d8
Parents: c95a07d2c

  • don't exit from within a window proc.

This should be handled by the message pump evaluating WM_QUIT which is how Windows suggests this to be done.

06-Oct-2019 (Sunday) at 18:10:37 CDT by Christoph Oelckers
Commit c95a07d2c
Parents: 0a611e199

  • missed one exit.

06-Oct-2019 (Sunday) at 17:55:14 CDT by Christoph Oelckers
Commit 0a611e199
Parents: 96006eb94

  • refactored the exit calls out of the networking code

These ones were particularly bad examples of misusing the exit handlers by temporarily installing one themselves and then calling exit to clean stuff up.

Now they just return an error code to D_DoomMain to perform a regular exit.

06-Oct-2019 (Sunday) at 17:37:56 CDT by Christoph Oelckers
Commit 96006eb94
Parents: b5fa08bf1

  • moved all exception handling out of the backends

The main catch is now in D_DoomMain, only calling platform specific functions to handle the output for the error.

As a nice side effect, -norun can now be done without an exception, just by exiting D_DoomMain with a special exit code.

06-Oct-2019 (Sunday) at 17:20:07 CDT by Christoph Oelckers
Commit b5fa08bf1
Parents: cd086ae1d

  • consolidated I_FatalError functions

This also removes the handling from thr Posix backend and will not compile on non-Windows.

06-Oct-2019 (Sunday) at 17:01:12 CDT by Christoph Oelckers
Commit cd086ae1d
Parents: d7289f646

  • consolidated the 3 I_Error implementations

Debug output is now being handled by the respective interface functions, not by the Windows I_Error itself.

06-Oct-2019 (Sunday) at 05:34:29 CDT by alexey.lysiuk
Commit d7289f646
Parents: 5a72e0bfb

  • fixed compilation with old versions of Xcode

libraries/zmusic/mididevices/music_fluidsynth_mididevice.cpp:628:3: error: use of undeclared identifier 'free'

06-Oct-2019 (Sunday) at 01:37:23 CDT by Christoph Oelckers
Commit 5a72e0bfb
Parents: 5cbb1c86a

  • 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.

05-Oct-2019 (Saturday) at 13:51:48 CDT by Rachael Alexanderson
Commit 5cbb1c86a
Parents: e6c6b617e

  • add missing information for the drawers, from the wallsprite code. this reverts a revert.

This reverts commit 338430995e893919f24cd2dc7cd6529d57e38a63.

05-Oct-2019 (Saturday) at 10:23:01 CDT by drfrag
Commit e6c6b617e
Parents: 338430995

  • Fixed crash with wallsprites in the software renderer for real.

05-Oct-2019 (Saturday) at 10:19:03 CDT by drfrag
Commit 338430995
Parents: b02ef69d4

Revert "- fixed a crash in the software renderer that caused wallsprites to crash"

This reverts commit 0dea6fcecc510600d16afa68d57cc53ef8a1d7cd.

05-Oct-2019 (Saturday) at 07:02:10 CDT by alexey.lysiuk
Commit b02ef69d4
Parents: 46270326b

  • 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

05-Oct-2019 (Saturday) at 06:47:36 CDT by alexey.lysiuk
Commit 46270326b
Parents: c09f19614

  • implemented str(n)icmp function definitions via CMake macro

05-Oct-2019 (Saturday) at 06:41:21 CDT by alexey.lysiuk
Commit c09f19614
Parents: ace677b8a

  • applied fast math flags to C and C++ files

Avoid copy-paste using CMake macro

05-Oct-2019 (Saturday) at 03:23:46 CDT by alexey.lysiuk
Commit ace677b8a
Parents: 7780f774f

  • fixed: soundfont selection for FluidSynth was ignored

05-Oct-2019 (Saturday) at 03:02:19 CDT by alexey.lysiuk
Commit 7780f774f
Parents: f13843c8c

  • fixed: mode argument was ignored by utf8_fopen() on POSIX platforms

04-Oct-2019 (Friday) at 01:42:10 CDT by Dominus Iniquitatis
Commit f13843c8c
Parents: 9332316c2

Fixed a typo

04-Oct-2019 (Friday) at 02:46:52 CDT by alexey.lysiuk
Commit 9332316c2
Parents: 0dea6fcec

  • set initial vsync state after creation of framebuffer

03-Oct-2019 (Thursday) at 22:32:14 CDT by Rachael Alexanderson
Commit 0dea6fcec
Parents: 1d9b5cb23

  • fixed a crash in the software renderer that caused wallsprites to crash (note: there is still a bug with grabbing the texture for these)

03-Oct-2019 (Thursday) at 04:22:46 CDT by alexey.lysiuk
Commit 1d9b5cb23
Parents: ad3327bdf

  • 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

02-Oct-2019 (Wednesday) at 02:57:39 CDT by alexey.lysiuk
Commit ad3327bdf
Parents: b0acfc3ce

  • fixed compilation of Cocoa backend

src/posix/cocoa/ error: redefinition of 'FBasicStartupScreen'

01-Oct-2019 (Tuesday) at 17:17:22 CDT by Christoph Oelckers
Commit 69eac1f37 (startscreen_stuff)
Parents: b0acfc3ce

  • added a texture that can display the start screen

Needed to experiment with this part of the engine. At the moment this only compiles on Windows because the other platforms do not have the needed backing code.

01-Oct-2019 (Tuesday) at 16:00:13 CDT by Christoph Oelckers
Commit b0acfc3ce
Parents: 5179a69fd

  • 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.

01-Oct-2019 (Tuesday) at 13:50:15 CDT by Christoph Oelckers
Commit 5179a69fd
Parents: b9d4e7721

  • don't let Vulkan access the vid_vsync variable directly.

Since the FrameBuffers have a SetVsync method anything these last set must count, not the global variable directly.

01-Oct-2019 (Tuesday) at 13:13:40 CDT by Christoph Oelckers
Commit b9d4e7721
Parents: d2c156224

  • eliminate a little bit of redundancy.

01-Oct-2019 (Tuesday) at 13:04:46 CDT by Christoph Oelckers
Commit d2c156224
Parents: 86ab36695

  • 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.

01-Oct-2019 (Tuesday) at 12:06:28 CDT by Christoph Oelckers
Commit 86ab36695
Parents: f3219ca97

  • some reformatting on exit code, mainly to make searching for the content easier.

01-Oct-2019 (Tuesday) at 08:26:57 CDT by Christoph Oelckers

Merge branch 'master' of

01-Oct-2019 (Tuesday) at 08:24:17 CDT by Christoph Oelckers
Commit 241a47602
Parents: 338ae15a4

  • small fix

01-Oct-2019 (Tuesday) at 04:06:24 CDT by alexey.lysiuk
Commit 8ff51ca12
Parents: 282047e67

  • fixed build issues with POSIX targets

30-Sep-2019 (Monday) at 18:37:21 CDT by Christoph Oelckers
Commit 338ae15a4
Parents: ff40bcd17

  • 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.

30-Sep-2019 (Monday) at 18:02:49 CDT by Christoph Oelckers
Commit ff40bcd17
Parents: a1a73ef2b

  • moced I_DetectOS call into D_DoomMain

This requires the console and was the reason for this strange setup.

30-Sep-2019 (Monday) at 18:00:37 CDT by Christoph Oelckers
Commit a1a73ef2b
Parents: 9f15efc5f

  • 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.

30-Sep-2019 (Monday) at 17:51:14 CDT by Christoph Oelckers
Commit 9f15efc5f
Parents: eae593b1f

  • also put the Windows system specific exit handlers into atexit's list

Again, these have no place in the game's own uninit code.

30-Sep-2019 (Monday) at 17:44:28 CDT by Christoph Oelckers
Commit eae593b1f
Parents: 12440bbca

  • put SDL_Quit into the atexit queue instead of atterm

System exit procedures should not go in there.

30-Sep-2019 (Monday) at 17:43:12 CDT by Christoph Oelckers
Commit 12440bbca
Parents: e7c388dcc

  • new exception class for quitting the game

This will eventually replace the atexit mess, right now it isn't used.

30-Sep-2019 (Monday) at 17:42:21 CDT by Christoph Oelckers
Commit e7c388dcc
Parents: 42a54ef54

  • 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.

30-Sep-2019 (Monday) at 17:30:44 CDT by Christoph Oelckers
Commit 42a54ef54
Parents: 282047e67

  • copied the restart cleanup code into its own function

30-Sep-2019 (Monday) at 17:26:07 CDT by Christoph Oelckers
Commit 282047e67
Parents: 2a3205200

  • added a mapping table from DOS-IBM-437 to Unicode

This is for future use, added now so that it won't get lost.

30-Sep-2019 (Monday) at 17:21:51 CDT by Christoph Oelckers
Commit 2a3205200
Parents: a2883cdf3

  • reordered a few things in the startup procedure

Mainly done to isolate the calls that actually manipulate the global frame buffer.

V_Init alsoi initialized some palette data, which was moved to V_InitPalette and did something entirely different when running a restart as opposed to an initial start.

30-Sep-2019 (Monday) at 17:11:05 CDT by Christoph Oelckers
Commit a2883cdf3
Parents: 63f2bf7ae

  • added missing return to the GENMIDI loader.

29-Sep-2019 (Sunday) at 20:01:47 CDT by Braden Obrzut
Commit 63f2bf7ae
Parents: ff9715c08

  • Document limitation of TArray and silence warnings about non-trivial types being trivially moved

30-Sep-2019 (Monday) at 09:20:04 CDT by Alexander
Commit ff9715c08
Parents: 0c2ed71cd

add m_quickexit option for quick exit in game menu

Default: off (false)

When this option is enabled (true), then exiting the game from main menu and by menu_quit command doesn't require confirmation and doesn't play sound.

Newer commits | Older commits