Commit graph

772 commits

Author SHA1 Message Date
Christoph Oelckers
e245852bff - removed FCriticalSection and replaced all of its uses with std::mutex.
There's really no need for a non-standard solution here anymore with C++11.
This also fixes an unreleased lock in the WildMidi code.

# Conflicts:
#	src/posix/sdl/critsec.cpp
2019-04-28 22:13:36 +02:00
Rachael Alexanderson
197c618dac - Remove "gitversion.h" from "version.h" - should result in faster compiles after a commit in Windows
- Fix zdoom.rc to show the actual git commit tag and id for the Product Version
- Made zdoom.rc "codepage 1252" compliant as dictated by the #pragma (if this needs changed the pragma should be updated, this was messing up the version strings in the final compile)

# Conflicts:
#	src/version.h

# Conflicts:
#	src/win32/zdoom.rc
2019-04-28 15:14:34 +02:00
Christoph Oelckers
77c00d7670 - replaced several explicit allocations with TArrays.
# Conflicts:
#	src/r_data/models/models_voxel.cpp
#	src/textures/formats/jpegtexture.cpp
#	src/textures/formats/pcxtexture.cpp
#	src/textures/formats/tgatexture.cpp

# Conflicts:
#	src/r_data/voxels.cpp
#	src/r_data/voxels.h
2019-04-18 13:58:37 +02:00
alexey.lysiuk
ec432beea0 - print VM stack trace on startup abort exception
https://forum.zdoom.org/viewtopic.php?t=62650
2019-04-17 19:57:22 +02:00
Christoph Oelckers
8669dbdcfe - removed test and debug code.
# Conflicts:
#	src/gl/scene/gl_scenedrawer.h
2019-04-15 21:50:57 +02:00
Christoph Oelckers
831cfd5280 - made CDoomError inherit from std::exception so that the main catch block can also deal with exceptions thrown by the STL.
- Also do not ignore empty exception messages as irrelevant. The only irrelevant exception type is CNoRunExit.
2018-11-23 19:41:05 +01:00
drfrag666
557380a769 - Added alpha parameter to DrawLine for the GL renderer, it's a fake parameter for the software renderer so mods don't crash. 2018-11-02 13:04:37 +01:00
Christoph Oelckers
b03c329ec6 - moved all GLDEFS parsing into a dedicated source file.
- split gl_postprocessshader.h in two so that the hardware independent part can be used by GLDEFS without pulling in all of OpenGL.

# Conflicts:
#	src/CMakeLists.txt
#	src/gl/dynlights/gl_glow.cpp
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/textures/gl_texture.cpp
2018-08-19 20:56:49 +02:00
drfrag666
4ed793eb3b - Disabled truecolor rendering and dynamic lights for software by default. 2018-07-27 02:04:18 +02:00
drfrag666
d5a15c66ad - Some cosmetic changes to the startup console. 2018-07-20 12:33:49 +02:00
drfrag666
76f60e51fe - New generic ZDoom icons by Tormentor667. 2018-06-20 19:57:56 +02:00
drfrag666
11ebbc689d - Changed game name to LZDoom. 2018-06-20 14:26:09 +02:00
drfrag666
cafb92c637 - Fall back to software mode if the GL renderer cannot start. 2018-06-19 17:08:59 +02:00
drfrag666
09a3d7c9da - Made the software renderer the default.
- Changed default GL texture filtering mode.
2018-06-19 17:08:10 +02:00
drfrag666
2fadfe53b4 - Fixed zdoom.rc for VS, _MSC_VER was not defined for the RC. 2018-06-18 18:40:25 +02:00
Magnus Norddahl
9bcd8aeb13 - remove unused VectoredTryCatch
# Conflicts:
#	src/win32/i_crash.cpp
2018-06-16 19:52:12 +02:00
drfrag666
d6369978b9 - Merged "- fixed Windows XP compatibility for MSVC 2017 targets".
Workaround initially implemented for MSVC 2015 is enabled with all Windows XP compatible toolsets regardless of Visual Studio version
(patch by _mental_)
Still it's a VS bug.
2018-05-31 11:00:19 +02:00
drfrag666
c656185069 - Extended workaround for the stat not working issue in v140_xp to v141_xp. 2018-05-29 09:51:12 +02:00
Christoph Oelckers
12a2dede7e - added CVAR to disable WGL_EXT_swap_control_tear.
At least on faster NVidia hardware, setting this to false and gl_finishbeforeswap to true gives a better experience because it reduces screen tearing - but the same setting will reduce frame rate quite dramatically on Intel and can cause bad stalls on some older GPUs when rendering camera textures.

(cherry picked from commit cc65490062)
2018-05-23 10:13:35 +02:00
Rachael Alexanderson
3d86244b61 - define zdoom.rc as a proper Windows text file, stop Git from mismanaging it
# Conflicts:
#	src/win32/zdoom.rc
2018-05-18 14:01:48 +02:00
drfrag666
0e25e40deb - Addressed crash on exit with MinGW. This is a hack and i've reported it as a bug in the MinGW C runtime. 2018-05-17 12:06:44 +02:00
alexey.lysiuk
a66686225d - fixed potential crash on startup, Windows only
At least one version of Windows SDK (10.0.17134.0) has broken _pgmptr/_get_pgmptr()
It points to an empty string for multi-byte character set applications
GetModuleFileName() is now used instead regardless of compiler/toolchain
Added extra guard against unexpected program paths to avoid crashes

https://forum.zdoom.org/viewtopic.php?t=60598
(cherry picked from commit e1e441091d)
2018-05-16 11:58:38 +02:00
drfrag
30a606ed6b - Fixed crash with textures larger than those supported by the hardware in the D3D backend.
# Conflicts:
#	src/win32/fb_d3d9.cpp
2018-05-12 14:28:58 +02:00
alexey.lysiuk
a545e7de35 - added end line to various messages
so they don't screw up further output anymore

(cherry picked from commit f17f8c9359)

# Conflicts:
#	src/gl/compatibility/gl_swshader20.cpp
2018-05-12 11:49:10 +02:00
drfrag666
d60299c740 - Fixed compilation with VS. 2018-05-11 14:22:43 +02:00
alexey.lysiuk
21ce592771 - skip rendering when application is not active
Use vid_activeinbackground CVAR to override this behavior

(cherry picked from commit 2be84dc636)

# Conflicts:
#	src/gl/system/gl_framebuffer.cpp
#	src/posix/cocoa/i_video.mm
#	src/posix/sdl/gl_sysfb.h
#	src/posix/sdl/sdlglvideo.cpp
#	src/win32/gl_sysfb.h
#	src/win32/win32gliface.cpp
2018-05-10 21:16:38 +02:00
Christoph Oelckers
84b261d947 - don't force the renderer to remain active in windowed mode when in the background.
It's ok to have this as an option, but not as an unconditional forced feature.

(cherry picked from commit b35213741f)
2018-05-10 14:59:22 +02:00
drfrag666
0c38c72ad7 - Some cleanup. 2018-04-27 22:00:31 +02:00
drfrag666
5a7192137d - Fixed usage of old _declspec. 2018-04-25 12:03:59 +02:00
drfrag666
bc2b82b1fb - Fixed 'thread' attribute directive ignored warning with gcc. 2018-04-23 17:49:32 +02:00
drfrag666
05b453d2a9 - Fixed missing manifest for MinGW. 2018-04-22 19:25:36 +02:00
drfrag666
2c5e37499d - Fixed zdoom.rc for MinGW. 2018-04-22 11:04:14 +02:00
drfrag
9727484190 - Applied Blzut3's patches to compile with MinGW. 2018-04-22 10:08:00 +02:00
drfrag
ad5959b827 - Applied some Blzut3 patches to compile with MinGW. 2018-04-22 09:50:38 +02:00
drfrag666
86a22d8cce - Fixed improved crash handling in drawers not compiling with mingw32. 2018-04-22 00:11:34 +02:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
4c4f8288a4 - disable XP toolset warning for 64 bit builds.
- fixed an error with assigning a string constant to a non-const char * variable that was pointed out by compiling with /permissive-.
2018-03-25 10:50:14 +02:00
Christoph Oelckers
da74b9df95 - serialize the temporary music volume that can be set through ACS. 2018-03-24 13:07:18 +01:00
Christoph Oelckers
7301001a3f - made the necessary adjustments to the HW2D interfaces to handle alpha textures properly.
These cannot be done with the regular textures so there needs to be an option to create more than one native texture per FTexture. For completeness' sake there is also the option now to create a paletted version of a texture if the regular one is true color. This fixes a long standing problem that translations were not applied to non-paletted textures.
2018-03-23 23:04:30 +01:00
Christoph Oelckers
f2f649bf77 - put all stats related code into one file. 2018-03-12 19:33:48 +01:00
Christoph Oelckers
d2fa4d0ff9 - most stat stuff done. 2018-03-12 19:33:48 +01:00
Rachael Alexanderson
c15e868b0f - implemented anonymous stats collector 2018-03-12 19:33:48 +01:00
Christoph Oelckers
b939836846 - renamed FileRdr back to FileReader. 2018-03-11 19:29:37 +01:00
Christoph Oelckers
833dbee167 - fixed some issues with m_swap's design.
The native byte order converters were defined as macros which hid some issues due to lack of type checks.
Additionally the ???Long variants taking 'long' variables were removed, because longs are not always 32 bits so this could be destructive.
As a result of this, removed several DWORDs from struct definitions in i_crash.cpp.
2018-03-11 14:35:36 +01:00
Christoph Oelckers
5fa63c396d - sound code and most of texture code converted to FileRdr.
This allowed to remove a lot of bad pointer voodoo in the music loader, because the new class does not allow duplication of the reader object
2018-03-10 18:45:11 +01:00
Christoph Oelckers
918d188263 - This shouldn't have been committed. 2018-02-25 16:15:24 +01:00
Christoph Oelckers
67a6ec01e1 - added a separate section for soundfont search paths. 2018-02-25 09:32:05 +01:00
Christoph Oelckers
2d8e394529 Merge branch 'master' into reverbedit
# Conflicts:
#	wadsrc/static/zscript/menu/optionmenuitems.txt
2018-01-20 11:44:42 +01:00
Rachael Alexanderson
000037dbf6 - implemented 'i_soundinbackground' to continue playing sounds and music while in the background.
- OpenGL rendering continues now even when losing focus while in windowed mode.
2017-12-24 18:01:45 -05:00
Rachael Alexanderson
938cd3cabe - implemented win_borderless for fake fullscreen in Windows 2017-12-07 06:32:51 -05:00
alexey.lysiuk
5162e7162e Fixed overbright screenshots with hardware gamma off
When render buffers are used to apply gamma/brightness/contrast screenshots should not use PNG gamma correction
2017-12-06 11:24:10 +02:00
Christoph Oelckers
4c799af293 Merge branch 'master' into reverbedit 2017-12-03 21:04:14 +01:00
Christoph Oelckers
a945418ba6 - added M_GetDocumentsPath function. 2017-12-03 21:03:44 +01:00
Christoph Oelckers
7e45535669 Merge branch 'master' into reverbedit 2017-12-03 12:46:08 +01:00
Christoph Oelckers
7cbcbe66c0 - sanitization of temporary file stuff for Timidity++.
* do not use the global temp directory. Instead create one in the AppData folder.
* removed lots of unneeded code from tmpfileplus.
* use C++ strings in there.
2017-12-02 17:33:43 +01:00
Christoph Oelckers
1af42b3d50 - use FileWriter for the OPL dumper. 2017-12-02 12:31:21 +01:00
Christoph Oelckers
57058ef727 - removed all remains of the old EAX editor. 2017-11-26 15:23:07 +01:00
Christoph Oelckers
1ed1b42c21 Safety commit. 2017-11-26 14:13:56 +01:00
Christoph Oelckers
78184ad6b5 - more work on reverb menu. 2017-11-26 10:16:21 +01:00
Christoph Oelckers
3ae5f8c09f - initial work on a reverb editor based on the menu system.
This is to get rid of some ugly Windows code and make this platform independent.
2017-11-25 22:03:18 +01:00
Magnus Norddahl
56477c8f89 - Fix 'Requested invalid render buffer sizes' when executing the reverbedit command from fullscreen 2017-11-25 12:20:00 +01:00
Christoph Oelckers
87816f811f - removed windows.h include from a few files which do not need it anymore. 2017-11-25 10:58:33 +01:00
Rachael Alexanderson
6d43c5cdc6 Merge remote-tracking branch 'origin/friendly_window_title' 2017-11-24 14:41:25 -05:00
Rachael Alexanderson
505da5bf4f Merge branch 'master' of https://github.com/coelckers/gzdoom into newtimercode4 2017-11-21 05:23:00 -05:00
Rachael Alexanderson
47e9975e90 - fixed a couple of fixes from the previous commit 2017-11-21 05:20:02 -05:00
Rachael Alexanderson
2bc86b52c8 - fixed a few of the more obvious logic errors 2017-11-21 04:06:24 -05:00
Christoph Oelckers
d9808e6d68 - there were still some old definitions left... 2017-11-12 10:02:29 +01:00
Christoph Oelckers
6bd76d6b5a - fixed compilation in debug mode.
- moved timer definitions into their own header/source files. d_main is not the right place for this.
- removed some leftover cruft from the old timer code.
2017-11-12 09:06:40 +01:00
Magnus Norddahl
307d8931d8 - Switch to C++11 steady clock
- Move the C++11 implementation to d_main
- Remove the platform specific timer implementations
2017-11-12 03:12:22 +01:00
Magnus Norddahl
090943eaa4 - Fix freeze interpolation bug 2017-11-11 17:28:38 +01:00
Magnus Norddahl
28401cd674 - Rewrite win32 game tick timer backend to use performance counters and only calculate values once per frame 2017-11-11 17:28:20 +01:00
Rachael Alexanderson
d16ad3dcb5 - added I_FriendlyWindowTitle cvar, which takes the current game/mod name and uses it as a default window title. 2017-10-31 19:47:56 -04:00
AraHaan
e15a84f062 Changed Fatal Error Dialog title.
This is to match all the parts that says GZDoom.
2017-09-22 19:13:08 +02:00
Rachael Alexanderson
3531f3e285 - Use a FreeDoom sprite for deadguy.bmp - much better than a red circle with an exclamation point on it. 2017-09-16 04:16:14 -04:00
Rachael Alexanderson
765646ee1c - fixed: Changed IWAD_FILENUM to a dynamic lookup. 2017-09-13 04:19:03 -04:00
Rachael Alexanderson
7cc073b7d2 - Added an .ico file compiled by Kinsie from an image set on the forum. 2017-09-07 17:18:26 -04:00
Rachael Alexanderson
6f98c5e8fb - replace potentially infringing static EXE assets (including icons) with ones from GZDoom-GPL 2017-09-07 04:13:30 -04:00
Mike Swanson
1bc8fe7312 Add GOG path for Doom 3: BFG Edition 2017-08-26 09:01:02 +02:00
Christoph Oelckers
9878477612 Revert "- fix linux compile"
This reverts commit b8c0e78c91 et al.

Instead, use the already provided access function I_FindName to get the file name from findstate_t.
Also made the contents of findstate_t private so that use of the access functions is required to retrieve the information and direct access triggers a compile error.
2017-08-20 08:01:41 +02:00
Rachael Alexanderson
b7d26b3fa1 - fixed Linux IWAD search thanks to a suggestion by Chris on the forum. Moved the search macros to i_system.h for both platforms. Neither are compatible with the other. This can be improved upon later, but for now, at least the major compile issue is fixed. 2017-08-19 22:10:45 -04:00
Rachael Alexanderson
8a7090b4b7 Revert "- In software rendering, lights now check if they are too far above or below a certain plane before rendering. An example of this is in unloved.pk3 where in map02, some lights are above the ceiling."
- fixed accidental QZDoom rename

This reverts commit eb425f206a.
2017-08-18 18:19:39 -04:00
Rachael Alexanderson
eb425f206a - In software rendering, lights now check if they are too far above or below a certain plane before rendering. An example of this is in unloved.pk3 where in map02, some lights are above the ceiling. 2017-08-18 18:14:43 -04:00
Magnus Norddahl
1a4cf16168 - Fix swtruecolor cvar messing up the chosen video mode 2017-07-23 20:54:03 +02:00
Magnus Norddahl
c3702ae9e7 Add vid_scalemode support to GL framebuffer 2017-07-23 00:33:56 +02:00
Christoph Oelckers
03ed0656e1 - fixed: The frame timer for interpolating the renderer should always take its time from the actual beginning of the frame instead of checking the system timer in real time when rendering starts.
This fixes two issues:

* timer related texture animations are not being recreated multiple times if a scene renders multiple viewpoints (e.g. camera textures or portals.)
* interpolation is smoother when maps have a high think time of multiple milliseconds. A good map to see the difference would be ZDCMP2 which has a think time of 4-5 milliseconds. With the timer taken in real time after the thinkers have run and VSync on this resulted in alternating time slices of 11 and 21 ms between frame interpolations instead of an even 16 as should be done for smooth 60 fps because roughly every second frame was offset by those 5 ms.
2017-07-20 14:20:50 +02:00
Magnus Norddahl
c8e713b067 - Remember maximized window state 2017-07-09 15:12:31 +02:00
Christoph Oelckers
c74356a1c0 - made OpenGL 3.3 a requirement for running the modern render path. Also force '-glversion 3' to use the modern render path, even though actual OpenGL 3.0 won't support it.
This will exclude Intel HD3000 and many obsolete drivers for NVidia and ATI which should have been updated long ago.
2017-06-28 17:57:04 +02:00
Rachael Alexanderson
78061f1cf7 - fixed: D3DFB::DoClear did not call Super::DoClear when vid_hw2d was false. 2017-06-07 03:55:02 -04:00
Christoph Oelckers
446d1eb9c8 - we no longer support Windows 9x or NT 4 so its special code may just be removed entirely. 2017-06-07 09:26:06 +02:00
alexey.lysiuk
3b61be3145 Removed dependency on dxguid library
It's impossible to use VS2017 with XP compatible toolset otherwise
2017-05-29 14:46:56 +03:00
Rachael Alexanderson
b7295775b9 - Print out warnings when Direct3D initialization fails. 2017-05-29 01:01:08 -04:00
Rachael Alexanderson
4545bb2fa1 - rename vid_used3d on windows to vid_glswfb to match Linux. Additionally, the values were reversed to match the Linux variant of this configuration. This CVar now operates exactly the same way it does on Linux, except it defaults to being off and still allows the D3D framebuffer on Windows when it's deactivated. 2017-05-27 04:52:43 -04:00
Magnus Norddahl
e27e89b57d - Make sure a hung worker thread always crashes the application 2017-05-21 12:03:12 +02:00
Christoph Oelckers
9fc309d5b5 - stop the music when processing a fatal error. 2017-05-19 12:20:33 +02:00
alexey.lysiuk
8fbb5372b2 Fixed 32-bit Windows crash reporter
Restored old exception handling for 32-bit Windows executable
Tested on 32-bit Windows XP (previously exited without notification), 64-bit Windows 7 and 10 (previously deadlocked in system DLLs)
2017-05-10 11:34:48 +03:00
Christoph Oelckers
567c21cdeb - fixed recursion in Dim functions. When the main worker function was renamed to DoDim the Super calls were not fixed for it. 2017-05-06 10:44:29 +02:00
Rachael Alexanderson
aae9b33198 - fixed: Swapping swtruecolor no longer crashes in OpenGL mode after selecting Software in the menu 2017-04-30 07:39:00 -04:00
Christoph Oelckers
ace0568d09 - now that SSE2 is a required feature for compiling on x86, DoBlending_MMX has no use anymore and could be removed, as could the checks for bRDTSC, which is an older hardware feature than SSE2. There's also little point printing pre-SSE2 hardware features because they can be assumed to be present on anything the code can run on. 2017-04-23 11:54:08 +02:00
alexey.lysiuk
b6774e723b Fixed non-functional XInput support when built with modern Windows SDKs
https://mantis.zdoom.org/view.php?id=568
2017-04-18 10:42:05 +03:00
Christoph Oelckers
57d703236b - changed Doom source license to GPL in all subdirectories and fixed missing licenses in a few other files. 2017-04-17 12:27:19 +02:00