Commit graph

581 commits

Author SHA1 Message Date
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
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
alexey.lysiuk
43eb262571 - fixed compilation of Cocoa backend
src/utility/i_time.h:6:15: error: redefinition of 'TimeScale' as different kind of symbol
2020-03-28 15:38:45 +02:00
alexey.lysiuk
51b46f1408 - removed detection of unsupported macOS versions 2020-03-28 15:38:05 +02:00
johannes hanika
5ee864ab5b vid: remove explicit bit depth gl calls
this makes gzdoom start on xorg configured with 30bit/pixel deep
colour modes, too. it seems these explicit calls are not required,
and detection via SDL_GetWindowPixelFormat does not yet work with
extended bit depths, so detection + setting size to 8 or 10 depending
on the result is unreliable too (as of SDL 2.0.1).
2020-02-21 11:08:29 +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
alexey.lysiuk
d527866e6d - moved showing of start window banner to proper location in Cocoa backend 2020-02-02 11:29:17 +02:00
alexey.lysiuk
f9906ae6cd - fixed I_FindAttr() to handle symlinks on POSIX platforms 2020-01-26 11:04:06 +02:00
alexey.lysiuk
d425d8d9ca - put common POSIX system code to a separate file 2020-01-26 11:01:13 +02:00
alexey.lysiuk
7092a0a8f0 - fixed Linux and macOS implementations of I_FindAttr()
At the moment, we assume that dirent struct has d_type member, and DT_DIR is defined
This is true for supported versions of macOS, and Linux with glibc

https://forum.zdoom.org/viewtopic.php?t=66945
2020-01-12 23:03:59 +02:00
Christoph Oelckers
d636acb002 - GAMESIG was never supposed to be used in printed output. Replaced all occurences with GAMENAME. 2020-01-12 09:43:47 +01:00
alexey.lysiuk
1bc67cf7b9 - added ability to use static SDL2 library
This is intended for developers only, e.g. for testing SDL backend on macOS
2020-01-09 15:37:01 +02:00
alexey.lysiuk
442f953d67 - fixed invalid context warnings with Cocoa backend
A bunch of 'CGContext<...>: invalid context 0x0' messages were printed to console during OpenGL view creation and resizing
2020-01-07 14:37:25 +02:00
alexey.lysiuk
fca492df2b - fixed compilation of debug target with older macOS SDKs
src/posix/cocoa/i_video.mm:633:31: error: property 'layer' not found on object of type 'id'
2020-01-06 14:26:16 +02:00
Fabian Greffrath
cc7807bb10 do not expect user input if stdin is redirected
If GZDoom is built on a POSIX system without the GTK frontend and not
run from a KDE session, an IWAD picker is presented on the terminal
and expects the user to select a game wad. However, if stdin is
redirected, this won't work, so start with the default IWAD instead.
2019-12-11 08:16:08 +02:00
Braden Obrzut
5a578ba1ae Fixed: GetClientWidth and GetClientHeight were still using SDL_Surface which on some systems would allocate an SDL_Renderer automatically. 2019-12-09 18:39:36 -05:00
Magnus Norddahl
bf68f1a851 Change SDL renderer creation error to a fatal one and also include why SDL failed the call 2019-12-09 23:33:22 +01:00
Braden Obrzut
4ae2e12cbf Convert SDL_Surface code to SDL_Renderer 2019-12-08 21:31:16 -05:00
alexey.lysiuk
e4587138bb - added support for softpoly backend on macOS
Grabbed most of code from old Cocoa backend with separate code path for software rendering
2019-12-07 13:25:12 +02:00
Madame Rachelle
f3897e26f0 - allow to change acceleration type in SDL backend for softpoly 2019-12-06 14:38:25 -05:00
Madame Rachelle
c646478aa0 - allow SDL to use OpenGL acceleration for polybackend 2019-12-05 18:27:46 -05:00
Magnus Norddahl
ab4f3ee0b1 Fix black border clears 2019-12-05 22:04:28 +01:00
Magnus Norddahl
e4bd2483e5 Implement SDL present functions 2019-12-05 21:26:01 +01:00
Magnus Norddahl
0f6aec5e99 Some vid_preferbackend compile fixes 2019-12-02 20:12:27 +01:00
alexey.lysiuk
d44d91d6a4 - fixed compilation of Cocoa backend with 10.9 SDK
src/posix/cocoa/i_video.mm:68:31: error: property 'delegate' not found on object of type 'id'
src/posix/cocoa/st_console.mm:464:37: error: property 'delegate' not found on object of type 'id'
2019-10-15 22:31:02 +03:00
alexey.lysiuk
29e3222fb3 - updated Cocoa backend to follow single exit point workflow 2019-10-12 14:44:13 +03:00
alexey.lysiuk
bb5ca2ce39 - deleted leftovers of exit refactoring 2019-10-12 12:43:49 +03:00
alexey.lysiuk
b68a9ebef5 - cleanup SDL fatal error reporting
Output error text to terminal if SDL message box cannot be shown
Removed wrong "No IWAD found" message
2019-10-11 12:03:23 +03:00
alexey.lysiuk
279b327c6c - fixed potential crashes in Linux crash reporter
Do not access various global objects at early stage of initialization and late stage of shutdown
2019-10-11 12:01:36 +03:00
alexey.lysiuk
08a66abde9 - call SDL_Quit() from main() instead of atexit()
This should help with crash reporting during SDL shutdown
2019-10-11 11:56:38 +03:00
alexey.lysiuk
d87170ed9e
- restored command line arguments initialization in SDL backend 2019-10-08 22:18:47 +03:00
alexey.lysiuk
d87f7593b8 - fixed compilation of POSIX targets
src/posix/cocoa/i_main.mm:152:2: error: use of undeclared identifier 'ShutdownJoysticks'
src/posix/sdl/i_system.cpp:128:3: error: ‘I_FatalError_Gtk’ was not declared in this scope
src/posix/sdl/st_start.cpp:329:8: error: ‘CExitEvent’ was not declared in this scope
2019-10-08 10:48:43 +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
ff379e7c0c 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.
2019-10-07 01:24:51 +02:00
Christoph Oelckers
96006eb94f - 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.
2019-10-07 00:37:56 +02:00
Christoph Oelckers
b5fa08bf15 - consolidated I_FatalError functions
This also removes the handling from thr Posix backend and will not compile on non-Windows.
2019-10-07 00:20:07 +02:00
Christoph Oelckers
cd086ae1da - consolidated the 3 I_Error implementations
Debug output is now being handled by the respective interface functions, not by the Windows I_Error itself.
2019-10-07 00:01:12 +02:00
alexey.lysiuk
ad3327bdf5 - fixed compilation of Cocoa backend
src/posix/cocoa/st_start.mm:63:7: error: redefinition of 'FBasicStartupScreen'
2019-10-02 10:57:39 +03:00
Christoph Oelckers
5179a69fdb - 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.
2019-10-01 20:50:15 +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
eae593b1f5 - put SDL_Quit into the atexit queue instead of atterm
System exit procedures should not go in there.
2019-10-01 00:44:28 +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
alexey.lysiuk
574e079f17 - use own implementation of iswalpha() function
Character classification is no longer affected by quirks of standard library implementation
Lookup table for own function was generated with Python thanks to Unicode Database module from its standard library
Explicitly set locale for POSIX targets was reverted to C

https://forum.zdoom.org/viewtopic.php?t=65641&start=18#p1115930
2019-08-24 20:52:24 +02:00
Christoph Oelckers
45f6ed4cd1 Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-08-23 16:03:15 +02:00
Christoph Oelckers
66db894866 - split off all music code from s_sound.cpp 2019-08-23 17:15:19 +02:00