Commit graph

710 commits

Author SHA1 Message Date
Christoph Oelckers
03c8fd9956 - block user overrides for the logic module of core fragment shaders. 2021-08-24 10:24:23 +02:00
Christoph Oelckers
8bdd4befbf - replaced deprecated throw() with noexcept in TObjPtr 2021-08-21 12:22:15 +02:00
Christoph Oelckers
4614ce41cd - allow passing a remap table to BestColor. 2021-08-21 10:55:21 +02:00
Christoph Oelckers
19c8eb1e33 - fixed bad check for gl pipeline type. 2021-08-20 08:07:16 +02:00
Rachael Alexanderson
2096fefcee Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-18 12:31:47 -04:00
Christoph Oelckers
109069f718 - removed the unused palette parameter from the V_GetColor family of functions. 2021-08-14 09:57:23 +02:00
Rachael Alexanderson
92a3731f20 Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-13 08:11:58 -04:00
Christoph Oelckers
c3772fe203 - changed FString API to use ptrdiff_t instead of long for signed size arguments. 2021-08-12 00:45:59 +02:00
alexey.lysiuk
ed606b8ed3 - extended 2D buffer lifetime to the end of the frame 2021-08-11 19:50:49 +02:00
alexey.lysiuk
387aef27ad - use RefCountedPtr to manage 2D shape buffer infos 2021-08-11 19:50:49 +02:00
alexey.lysiuk
76ecf44549 - added RefCountedBase without virtual destructor 2021-08-11 19:50:49 +02:00
alexey.lysiuk
bbcd522052 - made RefCountedPtr follow rule of five 2021-08-11 19:50:49 +02:00
Gutawer
67e7d1a6f5 - make RenderCommands able to use Shape2D vertex buffers past the Shape2D's lifetime without crashing 2021-08-11 19:50:49 +02:00
Christoph Oelckers
ccf46281df - fixed line color handling in V_BreakLines.
This cannot use the last color found while reading ahead - it must pick the last color of the string part that just got broken out into its own line when starting the next one.
2021-08-11 16:01:40 +02:00
Christoph Oelckers
1097bd6c73 - fixed: instead of checking gl_lights, better check Level->HasDynamicLights.
Especially in the thinker code this is needed for software rendering.
Strictly speaking, the software renderer should do the same, but it checks r_dynlight in so many places deep in the logic where the level is not available.
2021-08-11 14:09:00 +02:00
Christoph Oelckers
26d00e14c7 - file system update from Raze. 2021-08-11 12:39:32 +02:00
Christoph Oelckers
3adadfe4d3 - do not run the dynamic light ticker when lights are switched off. 2021-08-11 12:39:17 +02:00
Christoph Oelckers
f662c629e3 - ensure that shadowmap indices only get set when shadowmaps are enabled.
Having valid indices set when shadowmaps are off would cause the shader to run the full checks for all lights.
2021-08-11 10:06:22 +02:00
Christoph Oelckers
436ec28e94 - fixed file system's zip loader to not strip away a 'filter/' prefix. 2021-08-11 10:01:11 +02:00
Christoph Oelckers
c24f644a61 - do not perform shadowmap updates when dynamic lights are disabled. 2021-08-11 08:08:29 +02:00
Christoph Oelckers
6a63d9e70e - moved the CheckForRestart call one level up so that it is within the Windows code and does not need #ifdefs. 2021-08-10 22:17:00 +02:00
Christoph Oelckers
4505bfa4b8 - delay the restart action from the error pane until after everything has been shut down.
This cannot be done from a place where the old instance still can write to the config file, which happens only in the shutdown process.
2021-08-10 22:09:32 +02:00
Christoph Oelckers
b6156ac490 - re-fixed the font spacing. 2021-08-10 22:04:32 +02:00
Christoph Oelckers
9cd1e8cf7a - use proper XMove for sheet fonts. 2021-08-10 21:18:27 +02:00
Christoph Oelckers
03b7324f71 - reorder evaluation for 'if' statements to handle the condition first.
Otherwise this won't emit errors if a bad condition is used with an empty conditional part.
2021-08-10 19:03:40 +02:00
Christoph Oelckers
a16088f4b4 - fixed two vr_* CVARs not getting archived. 2021-08-10 18:51:44 +02:00
Christoph Oelckers
61efe76ffd - fixed: palette index 0 (transparent) was left uninitialized for BMF fonts. 2021-08-10 18:18:44 +02:00
alexey.lysiuk
747c291ae1 - fixed patch version in compatibility implementation of macOS detection 2021-08-07 12:37:18 +03:00
Cacodemon345
a067466dd8 SDL2: Properly print white bold text to the screen 2021-08-04 20:27:14 +03:00
Christoph Oelckers
441cd0796f - merged gzdoom-gles2 and fixed some issues with pipeline size validation. 2021-08-03 20:12:19 +02:00
Christoph Oelckers
b82b5384a0 - Backend update from Raze.
* voc loader fix.
* better prefix detection in Zip loader.
* SDL Vulkan init.
* disabling of shadowmap management when the feature is off.
2021-08-03 12:52:21 +02:00
Christoph Oelckers
c1a8776a15 - updated common code from screenjob branch.
That is, all parts not related to cutscenes.
2021-08-03 12:30:44 +02:00
alexey.lysiuk
7a3d8bd0e5 - fixed crash after fatal error in SDL backend
https://forum.zdoom.org/viewtopic.php?t=72885
2021-07-28 09:50:34 +03:00
Rachael Alexanderson
eb2646b613 - change previous /0 fix: as suggested here: cb8ae0b560 (commitcomment-53414064) 2021-07-13 06:32:54 -04:00
Christoph Oelckers
0cffeef2c6 - added map option to disable shadowmaps.
Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.
2021-07-13 11:54:25 +02:00
Rachael Alexanderson
cb8ae0b560 - fix /0 error caused by having a completely black font character. this error was triggered by Return of the Triad. 2021-07-13 00:15:39 -04:00
Christoph Oelckers
e453f97872 - Backend update from Raze. 2021-07-11 09:53:01 +02:00
alexey.lysiuk
e63f3e394c - fixed format specifier compilation warnings
src/common/engine/serializer_internal.h:241: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/engine/serializer_internal.h:250: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/rendering/vulkan/system/vk_device.cpp:364:29: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
src/common/rendering/vulkan/system/vk_framebuffer.cpp:701:57: warning: format specifies type 'unsigned long long' but the argument has type 'VkDeviceSize' (aka 'unsigned long') [-Wformat]
2021-07-01 13:19:18 +03:00
Christoph Oelckers
c700682a36 - MBF21: ported the code pointers to ZScript.
So far it's just the functions and some initial changes to Dehacked's parser. None of this is usable yet.
2021-07-01 00:53:15 +02:00
Christoph Oelckers
9b3782ea0f - MBF21: remaining actor properties. 2021-06-29 22:32:38 +02:00
Christoph Oelckers
9b4a4157b9 - added an OnDestroy method to Shape2D so that its users can explicitly free the data it holds.
In this case it is very important to care about management, because this class will hold GPU-side buffers!
2021-06-28 22:21:27 +02:00
Cacodemon345
5b1b6f1db4 Add Windows 11 detection 2021-06-28 20:18:52 +02:00
Christoph Oelckers
c4ed0cefde - MBF21: implemented new line flags.
While 'block players' was just a simple remap, 'block land monsters' required quite a bit of work...
This also fixes the bug that BLOCK_FLOATERS was never checked for sliding against a wall.
2021-06-28 20:17:08 +02:00
alexey.lysiuk
256451115b - report correct macOS version with older SDKs
When built against 10.15 SDK or earlier, macOS 11.0+ returns 10.16 for compatibility, and external process is needed to output the actual version for us
2021-06-15 10:35:33 +03:00
Christoph Oelckers
4e46a83734 - fixed bad type in FxFontCast. 2021-06-14 08:00:08 +02:00
alexey.lysiuk
38f2402d2d - added TVector2<> constructor from float*
As we seem to do not like explicit constructors, this will make temporary `TVector3<>` object creation much less probable
2021-06-13 10:42:34 +03:00
alexey.lysiuk
ff784fc905 - fixed parsing of 2D vectors in OBJ model loader
There is no `TVector2<>` constructor that accepts a pointer to float. However, there is such constructor in `TVector3<>`, so `TVector2<>` can be constructed from `float*` implicitly via temporary `TVector3<>` object.
2021-06-13 10:42:34 +03:00
alexey.lysiuk
e166eeb13d - added detection of macOS 12 Monterey 2021-06-08 10:25:05 +03:00
Christoph Oelckers
b3fd8ce12a - fixed permission validation in OptionMenuItemCommand.DoCommand.
This was missing the InMenu check like the other critical menu functions.
2021-06-07 08:16:53 +02:00
Christoph Oelckers
b0ccd3a7df - moved Doom specific font init code out of the backend. 2021-05-31 22:13:40 +02:00
Christoph Oelckers
868220107b - added fallback to the parenthesis glyphs for the braces. 2021-05-28 12:36:47 +02:00
Christoph Oelckers
38520e36c8 - fixed generation of default color range for the option menu font. 2021-05-28 12:11:34 +02:00
Christoph Oelckers
d36fd4f42b - fixed: GetColorTranslation did not handle translation-less single pic 'fonts' properly. 2021-05-28 10:47:11 +02:00
Christoph Oelckers
36e84a3669 - do not calculate translations for empty fonts.
FONTDEFS will create some due to lack of game filtering.
2021-05-27 13:50:02 +02:00
Christoph Oelckers
5f02b92cd0 - font system overhaul.
This eliminates nearly all palette dependencies, most importantly font translation will now be done on True Color data, making translations on True Color font less destructive.
2021-05-24 21:28:21 +02:00
Christoph Oelckers
7eef7614f8 - do not send depth bias changes to the GPU if nothing has changed. 2021-05-21 21:01:20 +02:00
Christoph Oelckers
a3a65f184f - use stb-image to handle PNGs with 16 bit color channels.
It is still not recommended to use this format - images tend to be huge and setup time is normally prohibitive - but at least they work now.
2021-05-19 19:20:51 +02:00
Christoph Oelckers
bd0ca55a35 - fixed: explicit float to int casts should not emit truncation warnings. 2021-05-19 18:35:36 +02:00
Christoph Oelckers
8a4fa8b65f - backend update from Raze. 2021-05-17 20:44:19 +02:00
Christoph Oelckers
97b8c0ccfb Revert "- fixed some uses of postincre,ment/decrements on narrow types."
This reverts commit 668f8f2cf6.

Revert "- added a proper error message when '--' or '++' gets used on 8 or 16 bit values."

This reverts commit a94f5dd1b3.

None of this was necessary - the triggered assert was bogus and had to be removed.
2021-05-17 18:13:30 +02:00
Christoph Oelckers
6e9c85791c - pick the proper dot for cutting off the extension in ExtractFileBase. 2021-05-17 13:11:41 +02:00
Christoph Oelckers
5bf2a26b82 - removed bogus assert from FxMinMax.
This would also trigger on signed/unsigned mismatches which it is not supposed to do.
2021-05-17 12:48:22 +02:00
Christoph Oelckers
0b5b919352 - let the CSV parser for the string table handle hex escapes. 2021-05-17 12:42:45 +02:00
Christoph Oelckers
668f8f2cf6 - fixed some uses of postincre,ment/decrements on narrow types.
THe VM has no opcode for this, all these places produced code with undefined behavior.
2021-05-17 12:42:22 +02:00
Christoph Oelckers
a94f5dd1b3 - added a proper error message when '--' or '++' gets used on 8 or 16 bit values. 2021-05-17 12:27:27 +02:00
Christoph Oelckers
31b1d760b1 - include fix. 2021-05-12 09:58:26 +02:00
Cacodemon345
c1c4066c76 SDL: Report Vulkan initialization errors 2021-05-09 22:57:00 +03:00
Rachael Alexanderson
bc15ded2a1 - make DI_ALPHAMAPPED change the style to STYLE_Shaded in the status bar drawer 2021-05-07 03:41:41 -04:00
Christoph Oelckers
3477d6c7c1 - added missing default values. 2021-05-03 14:33:40 +02:00
Christoph Oelckers
52554dc32c - Backend update fron Raze, mainly new script exports and extensions. 2021-05-03 14:13:03 +02:00
Cacodemon345
e4ada10e78
Remove support for SDL2 2.0.5 and earlier 2021-05-02 12:59:38 +03:00
Rachael Alexanderson
153968dc7c - change vid_allowtrueultrawide - -1 allows for any arbitrary ratio for hud aspects, 0 changed to old behavior (max 16:9), 1 changed to old behavior except at 21:9, 1 is now the default.
- `vid_allowtrueultrawide` is now placed in game-specific config, instead of global.
2021-05-02 01:25:21 -04:00
nashmuhandes
afd7b2e954 Allow settable render styles for status bar drawing functions DrawTexture, DrawImage and DrawString 2021-04-26 23:04:39 +02:00
alexey.lysiuk
8695325383 - fixed saving game to wrong save slot
This is a temporary solution as it makes GZDoom and Raze code bases incompatible

https://forum.zdoom.org/viewtopic.php?t=72085
2021-04-26 09:46:20 +03:00
Rachael Alexanderson
a2d3dbf74e - Change VKHardwareTexture::CreateTexture to allow a null buffer to be passed. This is used by the software renderer to create an arbitrary texture for screen rendering. 2021-04-25 02:06:40 -04:00
alexey.lysiuk
4bcea0ab78 - handle empty command names when getting key binds
See https://github.com/Realm667/WolfenDoom/issues/498
2021-04-19 18:09:20 +03:00
Christoph Oelckers
ba146ed5e5 - Backend update from Raze 2021-04-19 12:58:35 +02:00
Magnus Norddahl
4e503a1d1b Removed depthClamp requirement (note: portals will not render correctly on such devices)
Added format fallback support for VK_FORMAT_A2R10G10B10_UNORM_PACK32 since the pi4 doesn't support it
2021-03-28 18:26:23 +02:00
Rachael Alexanderson
ad8ae0f146 - set libADL and libOPN bank settings (only) to game specific 2021-03-28 09:01:54 -04:00
Erick Vasquez Garcia
03473abea2 A software implementation for gamma, brightness, contrast and saturation effects on SoftPoly. Based on original code by @dpjudas, thanks for the code. 2021-03-27 10:35:41 +01:00
Erick Vasquez Garcia
bf3018cc84 Bug fix in invulnerability in Doom Software Render Mode and True Color SW Render in SoftPoly. 2021-03-27 10:35:41 +01:00
Cacodemon345
3b50f7dfa6 SDL: Don't write garbage to output if it is redirected 2021-03-21 12:09:19 +02:00
Christoph Oelckers
ae09ca7a48 - moved EColorManipulation into the backend. 2021-03-13 12:21:07 +01:00
Christoph Oelckers
a0cffca3bb - restore accidentally deleted 'testmusicvol' CCMD. 2021-03-12 08:48:59 +01:00
Christoph Oelckers
d1023046ba - default replay gain to 'off'. 2021-03-11 15:47:05 +01:00
Christoph Oelckers
b9dafaaa6b - fill in the MIDI defaults for generating the lookup string for replay gain.
Both synth and sound font can be very relevant here for the final volume so using the same song with different settings needs to create different strings.
2021-03-11 00:20:19 +01:00
Christoph Oelckers
f11780600f - implemented replay gain calculation and management.
This is done entirely on the streamed sound data, unlike the old relative volume which uses the backend's volume setting.
2021-03-10 23:06:21 +01:00
alexey.lysiuk
952d43b884 - escape double quotes in Cocoa IWAD picker's extra arguments
https://forum.zdoom.org/viewtopic.php?t=71675
2021-03-08 11:44:14 +02:00
Christoph Oelckers
d18b74b537 Merge branch 'master' of https://github.com/Chernoskill/gzdoom 2021-03-06 11:32:31 +01:00
Chernoskill
d1ea33a815
Update models_obj.cpp 2021-03-06 11:27:23 +01:00
Chernoskill
27cf152438
Update models_ue1.cpp 2021-03-06 11:26:53 +01:00
Chernoskill
4e583772d7
Update models_md3.cpp 2021-03-06 11:26:31 +01:00
Chernoskill
72787c2c4c
Update model.h 2021-03-06 11:18:45 +01:00
Christoph Oelckers
357163c60d - Backend update from Raze. 2021-03-04 14:45:29 +01:00
Magnus Norddahl
996b4f9f5c Implement depth clamp 2021-03-02 03:22:18 +01:00
Magnus Norddahl
d6f8e80177
Fix portals not working in softpoly (#1323) 2021-02-28 20:24:15 -05:00
Chernoskill
fa2058004b The two TArrays of type FTextureID skinIDs and surfaceskinIDs no longer have any null elements. These elements will have a textureid (FTextureID.texnum) of 0.
Re-worded error messages which were unprecise or unfitting before (model index below 0 was not acknowledged at all, or grouped together with a "too many models" message).

modelIDs are given a default value of -1.

Important: A MODELDEF's FrameIndex lines can no longer refer to model indices that are beyond the number of models of that MODELDEF entry. There is in fact a check to avoid going beyond the number of an actor's models which would abort program operation at startup, but it never caught any such occurances.

surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]
Used TArray.Alloc to make TArrays have the correct size depending on the number of models.

Also removed MAX_MODELS_PER_FRAME.
Edited skinSurfaceIDs access for one-dimensional TArray

Added MD3_MODELS_MIN
To ensure compatibility with mods, all model-related TArrays (four in total) have a minimum size of 4, defined by MD3_MODELS_MIN.
2021-02-26 22:22:33 +01:00
Christoph Oelckers
feb3520ee9 - added m_swapbuttons CVAR for the Windows RawInput and DirectInput backends.
The problem I discovered is that these backends do not respect the GUI-side system setting for swapping the buttons, so this needs to be done in-application so that swapped buttons can behave the same in the menu and the game.
2021-02-26 10:37:55 +01:00
Gutawer
73dc528112
- fix some crashes in the Shape2D VBO code due to unsound pointer usage (#1318) 2021-02-25 10:49:41 -05:00
Rachael Alexanderson
d6987ff6b2 Revert "Dynamic number of models per frame instead of a hard limit of four. (#1298)"
This reverts commit 769d60a64f.
2021-02-25 09:58:17 -05:00
Cacodemon345
a531c9c35f
Properly abort the program if the SDL window can't be created at all (#1296) 2021-02-24 15:27:42 -05:00
Chernoskill
769d60a64f
Dynamic number of models per frame instead of a hard limit of four. (#1298)
* Changed model-related arrays to TArrays.

* Update models.cpp

Used TArray.Alloc to make TArrays have the correct size depending on the number of models. 
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, it's size is now (models * MD3_MAX_SURFACES)
surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case sSurfaceIndex + modelIndex * MD3_MAX_SURFACES]

* Edited skinSurfaceIDs access for one-dimensional TArray

* Edited skinSurfaceIDs access for one-dimensional TArray

* Edited skinSurfaceIDs access for one-dimensional TArray

* Changed model-related arrays to TArrays.

Also removed MAX_MODELS_PER_FRAME.

* Used TArray.Alloc to make TArrays have the correct size depending on the number of models. 

surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]

* Used TArray.Alloc to make TArrays have the correct size depending on the number of models. 

surfaceSkinIDs was two-dimensional and is now a one-dimensional TArray as well, elements are accessed via [Row + Column * NumRows], in this case surfaceIndex + modelIndex * MD3_MAX_SURFACES]

* Update models.h

* Edited MAX_MODELS_MD3

* Update models_obj.cpp
2021-02-24 15:26:47 -05:00
alexey.lysiuk
e6810620cd - restored sound-related developer messages
https://forum.zdoom.org/viewtopic.php?t=71486
2021-02-20 11:00:12 +02:00
Erick Vasquez Garcia
65b0047b26 SoftPoly: Fixed the md3 models, you can now correctly display the frame of the model, in addition, interpolation is added to the model.
This error is mentioned by drfrag in the following link https://forum.zdoom.org/viewtopic.php?f=336&t=71228
2021-02-20 09:14:18 +01:00
dondiego
395fc28e12
SoftPoly: Fixed the screen turning white with invulnerability sphere in Doom and in Heretic avoiding color errors in some pixels when activating the "ring of invincibility". (#1307)
Co-authored-by: Erick Vasquez Garcia <erickv5394@gmail.com>
2021-02-18 23:37:53 -05:00
Player701
387abf81a0
- Added a new intrinsic for class pointers to check if the class is abstract (#1308) 2021-02-18 11:17:23 +01:00
Erick Vasquez Garcia
78c0ec0470 - Fixed sprites were not affected by dynamic lights on SoftPoly. 2021-02-16 08:27:02 -05:00
Raccoon
59fcf45222
Add Warnings for when PNG loads fail due to unsupported flags (#1302)
This was the result of an issue which stumped the entire Discord, which led to me having to debug from source to find why some relatively standard publicly available PBR materials work.  GZDoom is the ONLY program in the typical development stack (GIMP, Slade, UDB) with this narrow of support for the PNG format. As such, the average developer will have no other way to figure out what's going wrong without these: these CANNOT be allowed to fail silently.  As things like PNG-compression and 64-bit color become more common in royalty-free PBR materials, support should be an eventual target.  Even then, these warnings should remain to prevent this from being an issue the next time things change.
2021-02-12 19:37:18 +01:00
Christoph Oelckers
c9ed4293f7 - backend update from Raze. 2021-02-12 14:40:34 +01:00
Magnus Norddahl
7e68223794 Add support for zero size buffers as the hwrenderer uses that!
Also add a sanity check on zero size textures just in case that ever happens!
2021-02-12 06:38:26 -05:00
Cacodemon345
f2469c6dcf Change _access to _waccess 2021-02-12 09:07:09 +01:00
Cacodemon345
349a2e9235 Fix crash when trying to open unreadable IWAD files 2021-02-12 09:07:09 +01:00
alexey.lysiuk
6bc82bdeff - fixed incorrect extension of overridden function prototype
Prototype of overridden function with optional argument(s) missing could extend unrelated prototype of previously defined function when their arguments and return value(s) match

https://forum.zdoom.org/viewtopic.php?t=71340
2021-02-12 08:42:57 +01:00
alexey.lysiuk
e0e0fb0d8f - fixed uninitialized global rolloff in sound engine
Depending on SNDINFO definitions, type of global rolloff could left uninitialized, and linear rolloff might be treated as logarithmic

https://forum.zdoom.org/viewtopic.php?t=70248
2021-02-08 11:50:00 +02:00
Christoph Oelckers
917eb2b5e3 - fixed: FTextureManager::ReplaceTexture did not calculate the upscale flags. 2021-02-07 09:19:56 +01:00
alexey.lysiuk
74685a1360 - added detection of more x86 extended CPU instructions
Replaced report of 3DNow support with recent fancy CPU instructions
2021-02-06 16:56:59 +02:00
alexey.lysiuk
6d47d79e22 - removed useless x86.h #include's 2021-02-06 15:01:08 +02:00
alexey.lysiuk
d9a5c00cd4 - cleaned x86 CPU detection of obsolete code 2021-02-06 15:01:08 +02:00
alexey.lysiuk
a7e97daa86 - added detection of a few x86 extended CPU instructions
i hope this will make some people a bit happier
2021-02-06 15:01:08 +02:00
Gutawer
aad50cb218 - fix alpha (and other parameter properties) not reuploading the buffer on Shape2D 2021-02-06 06:49:20 -05:00
Cacodemon345
3c5f5f392f Add progress bar for SDL backend 2021-02-02 03:32:40 -05:00
alexey.lysiuk
9bd07e5c83 - improved JIT simple frame error message
https://forum.zdoom.org/viewtopic.php?t=71340
2021-01-31 14:47:33 +02:00
Rachael Alexanderson
ad66063354 - oops this was not supposed to be in master
Revert "- failed attempt at automap line thickness"

This reverts commit 9651dd3a48.
2021-01-31 06:24:43 -05:00
Rachael Alexanderson
b9e37ff0f4 Merge branch 'master' of https://github.com/coelckers/gzdoom 2021-01-29 22:52:33 -05:00
Rachael Alexanderson
9651dd3a48 - failed attempt at automap line thickness 2021-01-29 22:52:28 -05:00
Christoph Oelckers
f108a106c9 - backend update from Raze. 2021-01-29 13:54:18 +01:00
Rachael Alexanderson
c783b9dce9 - 21:9 improvements
- vid_aspect is now set to change to 21:9's ACTUAL aspect - 64:27
- screen elements now scale to 64:27 properly. to restore classic behavior, set cvar `vid_allowtrueultrawide` to false
2021-01-17 11:41:36 -05:00
Rachael Alexanderson
efa788cd5e - remove erroneous assert in the ZScript codegen compiler
- fixes issue #1279
2021-01-17 10:58:44 -05:00
Marisa Kirisame
44b4359ba5 Add alternate "Full" mode for PowerIronFeet that prevents leaky damage. 2021-01-16 17:09:57 +01:00
William E. Waterman
3261eb3643
Side By Side Letterbox Display mode (#1255)
* Added SBSLETTERBOX to menudef.txt

* Changed PresentSideBySide in gl_renderer

Needed for new side-by-side mode

* Added VR_SIDEBYSIDELETTERBOX to gl_stereo3d.cpp

For side by side letterbox display mode

* Added VR_SIDEBYSIDELETTERBOX to hw_modes.h

For new side by side letterbox display mode

* Added VR_SIDEBYSIDELETTERBOX to hw_vrmodes.cpp

For Side By Side Letterbox display mode
2021-01-13 07:09:13 -05:00
Chronos Ouroboros
d8164e0050 - Fix the "Max" constant being incorrect for unsigned int types. 2021-01-06 15:50:58 -03:00
alexey.lysiuk
1767fdfe7a - extended operating system information with os-release's pretty name
https://www.freedesktop.org/software/systemd/man/os-release.html
2021-01-02 14:59:31 +02:00
Rachael Alexanderson
6089c34558 - oops forgot to add this file 2021-01-02 07:47:25 -05:00
Gutawer
276cdde112
Modify Shape2D so that it manages its own vertex buffer rather than using the draw list (#1249)
* - modify Shape2D so that it manages its own vertex buffer

* - fix the last commit failing on Shape2Ds that were modified after AddShape was called

* - make buffers an array of F2DVertexBuffers instead of an array of pointers

* - fix AddShape with the same VBO but different transformation crashing the game

* - formatting fixes
2021-01-02 07:41:32 -05:00
Rachael Alexanderson
e917cd0a2c - oops, fix previous commit, that wasn't meant to be in there 2021-01-01 22:44:36 -05:00
Rachael Alexanderson
54fba4d642 - windows: create stub functions for the crash logger for ARM. this invites the possibility, hopefully, that if someone is inclined, to actually make one. it also cleans up the code a little bit for intel. 2021-01-01 20:52:18 -05:00
alexey.lysiuk
499df03821 - removed limitation on number of descriptor set layout bindings
https://forum.zdoom.org/viewtopic.php?t=70955
2021-01-01 14:46:24 +02:00
Cacodemon345
0dda8733db
Print name of OS on POSIX systems when using SDL
#1265
2020-12-31 14:48:48 +02:00
Christoph Oelckers
423fe60080 - fixed: strbin did not check for a terminating 0-character right after an escaping backslash. 2020-12-11 11:22:07 +01:00
Rachael Alexanderson
64ff15b82b
Squashed commit of the following: (#1248)
commit bbfb934e808c6602d3a059adf270e997b71b900c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sun Dec 6 23:50:15 2020 -0500

    - and now it builds! but ... does it run?

commit 67096c8966f28dcff40c998d10e5510d6a689a13
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sun Dec 6 22:25:13 2020 -0500

    - one more step closer to compile

commit 5a0c84dd2d3e1798e7a99f4ec1696f678708f0e6
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sun Dec 6 22:13:39 2020 -0500

    - set up dynamic opengl load for windows

commit 6ef8118b801f305000ce881a4b04aaaef0196226
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Sat Dec 5 16:38:53 2020 -0500

    - allow compiling for win-arm64

commit 7d6f3797c4393fa7b0ed567b94d1de135ecb5ac6
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Dec 4 05:18:29 2020 -0500

    - allow targeting ARM64 on Windows

Co-authored-by: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
2020-12-10 09:16:28 -05:00
Gutawer
f223005584 - fix keyboard repeat events not being sent to menus if TranslateKeyboardEvents is true 2020-12-09 16:20:42 -03:00
makise-homura
10c682acf6 Change type of ops[] to deal with goto *p for EDG compilers 2020-11-30 09:26:16 +02:00
Chris Robinson
51adcd45e6 Simplify manual sound rolloff handling 2020-11-25 16:26:38 +01:00
Christoph Oelckers
9925cc380e - backend update from Raze. 2020-11-23 15:45:33 +01:00
Christoph Oelckers
58d8ce1a4f - cleanup of m_fixed.h.
With fixed point math barely being used anywhere with the vast majority of calls in the software voxel drawer it makes sense to reduce the function interface to the minimum possible and move the shift value into the function call as an argument.
2020-11-22 10:25:04 +01:00
alexey.lysiuk
38d29c235b - fixed incorrect autosegs section addresses on macOS
It appeared that getsectbyname() returns address stored in executable header as is, i.e. without adjusting it for ASLR
2020-11-14 12:16:51 +02:00
alexey.lysiuk
18b5928f49 - eliminate dependency on linking order for autosegs registration 2020-11-13 11:03:16 +02:00
alexey.lysiuk
013078a02f - fixed compilation with MSVC 14.28.29333 from VS2019 16.8.0
include\algorithm(7419,17): error C3892: '_First': you cannot assign to a variable that is const (compiling source file src\rendering\hwrenderer\scene\hw_drawlist.cpp)
2020-11-12 12:06:03 +02:00
alexey.lysiuk
b8b93e0dd8 - fixed most of implicit fallthrough compilation warnings
src/common/console/c_console.cpp:1032:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/console/c_console.cpp:958:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/backend/codegen.cpp:2969:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/frontend/zcc_compile.cpp:2656:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/frontend/zcc_compile.cpp:521:5: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/common/scripting/jit/jit_math.cpp:966:19: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/d_main.cpp:1538:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/d_main.cpp:1549:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/d_main.cpp:3820:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gameconfigfile.cpp:544:25: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gamedata/p_xlat.cpp:193:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gamedata/p_xlat.cpp:200:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/gamedata/p_xlat.cpp:210:11: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/g_game.cpp:1145:20: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/maploader/maploader.cpp:2142:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/menu/doommenu.cpp:159:28: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/m_cheat.cpp:109:3: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_ceiling.cpp:254:24: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_floor.cpp:322:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_floor.cpp:330:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_floor.cpp:344:10: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_plats.cpp:129:47: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/mapthinkers/a_plats.cpp:284:8: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/p_acs.cpp:6302:18: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/p_acs.cpp:8111:16: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/playsim/p_spec.cpp:344:6: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/scripting/decorate/thingdef_parse.cpp:1343:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/scripting/zscript/zcc_compile_doom.cpp:298:12: warning: this statement may fall through [-Wimplicit-fallthrough=]
src/wi_stuff.cpp:463:14: warning: this statement may fall through [-Wimplicit-fallthrough=]
2020-10-31 13:37:51 +02:00
alexey.lysiuk
112640e6c0 - fixed compilation warnings reported by GCC and Clang
src/common/menu/menudef.cpp:785:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
src/playsim/p_pspr.cpp:178:3: warning: field 'processPending' will be initialized after field 'HAlign' [-Wreorder]
2020-10-31 13:37:51 +02:00
Christoph Oelckers
53a6b9ee59 - moved status bar base class to 'common'. 2020-10-31 12:24:15 +01:00
Christoph Oelckers
e6c96bcb75 - move VM exports to the proper class. 2020-10-31 12:24:14 +01:00
Christoph Oelckers
783d532bbe - moved the script exports to the base class as wello. 2020-10-31 12:24:14 +01:00
Christoph Oelckers
196d3c32bb - moved the drawing utilities to the abstact base statusbar function. 2020-10-31 12:24:13 +01:00
Player701
08302146d7 - Extended AddOptionMenu to allow inserting items before or after a specific menu item 2020-10-29 11:21:39 +01:00
Player701
e276431336 - Implemented AddListMenu MENUDEF directive to allow extending list menus.
Syntax: AddListMenu "MenuName" [<before|after> "SubMenuName"] { ... }

By default, new items will be added to the end of the menu. Specifying before/after allows inserting items before or after a specific submenu item.
2020-10-28 21:45:04 +01:00
Christoph Oelckers
d4d187e27b - removed the limiter flags again and addressed the underlying problem properly.
The real issue is that the number of unattenuated sounds was unchecked and the near limit never kicked in.
To do this properly it is necessary to adjust the limit distance by the attenuation - zero attenuation must mean infinite distance and for high attenuations the distance must be lowered for limiting to work as intended.
The limit for the Doom boss sounds was increased to 4 to compensate for this change.

# Conflicts:
#	src/common/audio/sound/oalsound.cpp
2020-10-28 21:30:25 +01:00
alexey.lysiuk
2ebf38c9c9 - removed duplicated line of code 2020-10-28 09:52:56 +02:00
Christoph Oelckers
fb0a40e0f0 - enable OpenAL's sound volume normalizer. 2020-10-27 20:36:17 +01:00
Rachael Alexanderson
34c57ab6be - add 'loadwidescreen' to gameinfo, works exactly like 'loadbrightmaps' or 'loadlights' 2020-10-26 10:08:34 -04:00
Rachael Alexanderson
7479648083 - add widescreen loader, and a bare pk3 2020-10-26 09:56:58 -04:00
Christoph Oelckers
d850ca6a0e - fixed: MENUDEF did not take recusive parsing into account when checking the default scaling mode. 2020-10-26 06:27:24 +01:00
Christoph Oelckers
6a9bfa2cb3 - do not use the border flat for the fullscreen console. 2020-10-26 06:15:13 +01:00
Christoph Oelckers
54f85d4caa - made the sinmple options menu switchable.
Also ensure that custom mods pick up the simple version if enabled.
2020-10-25 17:07:03 +01:00
Christoph Oelckers
14776aebb6 - some minor adjustments to the console init interface. 2020-10-25 15:41:30 +01:00
Christoph Oelckers
66abbf647c - this was in the wrong branch 2020-10-25 14:50:45 +01:00
Christoph Oelckers
964417947f - use the border flat as console fallback instead of the title pic.
This tends to work a lot better because it has far lower contrast.
2020-10-25 14:37:29 +01:00
Christoph Oelckers
0e4625867e - moved c_console.cpp to 'common'. 2020-10-25 13:25:31 +01:00
Christoph Oelckers
f912712f9d - cleaned up c_console.cpp to be moved into 'common'. 2020-10-25 13:14:19 +01:00
Christoph Oelckers
194824f810 - some fixes for the console.
* it is now possible to switch back to the main intro loop from the fullscreen console.
* do not distort the background of the fullscreen console. Always draw the console on top of what the main loop currently displays with a translucent black overlay.
* do not use the CONPIC for the fullscreen console as it tends to be more of a distraction than an asset when filling the entire screen.
* cleaned up c_console.cpp and moved several pieces of code unrelated to actual console management out of it.
2020-10-25 09:17:31 +01:00
Christoph Oelckers
838733af4a - do not use the GetFullscreenRect function as a native scripting function 2020-10-24 21:19:20 +02:00
Christoph Oelckers
bc2b0a0252 - added flag option menu item by Accensus. 2020-10-24 17:49:56 +02:00
Christoph Oelckers
e1af278b37 - adapt the bunny scroller to widescreen images.
This only concerns the actual horizontal scroller. The vertical one still needs work and the "The End" screen only works if the second picture of the scroller is the full widescreen image because this page is done as a regular single image page which does not know anything about widescreen asset replacements.
2020-10-24 15:31:45 +02:00
Christoph Oelckers
54ddb400a5 - fixed fullscreen scaling for narrow aspect ratios. 2020-10-24 12:07:05 +02:00
Christoph Oelckers
74925783aa - default to fullscreen mode 3.
The option still remains for cases where it does not work but the cases where mode 3 causes real problems are rare.
All I could find were a handful of poor intermission pics in some old mods which aren't worth keeping this artificial limitation.
2020-10-24 11:36:50 +02:00
Player701
63035d5031 - Prevent calling abstract functions via Super or parent class name qualifiers at compile time 2020-10-19 11:20:50 +02:00
Player701
761dea8640 - Implemented ZScript abstract functions 2020-10-19 08:24:43 +02:00
Christoph Oelckers
565a5acd85 - changed order of identifier types to be checked to what it was in 4.3 2020-10-17 15:13:14 +02:00
Christoph Oelckers
28a12d2597 - fixed update check for shadow map tree.
This should only flag the tree as new if it is different from the last one.
This not only caused issues with dynamic updates but also made the renderer recreate the tree's data structures repeatedly.
2020-10-17 15:01:05 +02:00
Christoph Oelckers
14e94aa6c1 - added localization fallback handling for the BigFont in menu items and captions. 2020-10-17 14:00:29 +02:00
Christoph Oelckers
473072d556 - doubled the default for horizontal mouse sensitivity.
This seems to fit more systems.
2020-10-17 13:10:09 +02:00
Christoph Oelckers
38df70f4bc - clear intermediate entries when inserting an object beyond the end of an array. 2020-10-17 12:08:55 +02:00
Christoph Oelckers
0526e0e04e - fixed: Array.Insert must zero all elements before the new one if something gets inserted outside the existing range. 2020-10-17 11:40:51 +02:00
Christoph Oelckers
d6e962c91e - upgraded code base to C++17.
Mainly to allow using 'if constexpr'.
Older CI compiler setups like GCC 5 for Linux were removed as a consequence.
Windows 32 bit was also removed because there are no plans to do any more 32 bit releases of GZDoom.
2020-10-17 11:39:59 +02:00
Christoph Oelckers
a89afe61f2 - use a few static asserts instead of runtime asserts in the VM's type code. 2020-10-17 10:18:37 +02:00
Christoph Oelckers
65c52b9825 - Backend update. 2020-10-16 23:25:18 +02:00
Christoph Oelckers
ef7a7cc39d - moved console command line buffer tab completion into their own files.
- layout fixes in load/save menu and confirmation screen.
2020-10-16 22:57:30 +02:00
Christoph Oelckers
a6842b6482 - ensure that sfxinfo_t is always fully initialized, regardless how the setup is performed.
The recent pitch additions did not do this on all possible paths.
2020-10-16 22:57:30 +02:00
Christoph Oelckers
4deb7593b5 - final update of menu code from Raze. 2020-10-16 22:57:30 +02:00
Christoph Oelckers
fa4ab53e7c - script side support for menu transitions. 2020-10-16 22:57:29 +02:00
Christoph Oelckers
cf7518fe43 - added two more system callbacks for menu customization. 2020-10-16 22:57:29 +02:00
Christoph Oelckers
881a77b3a1 - backport of menu transition code from Raze. 2020-10-16 22:57:29 +02:00
Christoph Oelckers
62138decfe - use Raze's layout for load and save game menus.
This has a lot less black void on screen.
2020-10-16 22:57:28 +02:00
Christoph Oelckers
b8281f4758 - Backend update from Raze. 2020-10-16 22:57:28 +02:00
Christoph Oelckers
3ea0658449 - split the savegame manager into a game dependent and a reusable game indepenent part.
- added menu/advance sound alias.
2020-10-16 22:57:28 +02:00
Christoph Oelckers
504f85e6d4 - moved date code to its own file. 2020-10-16 22:57:27 +02:00
Christoph Oelckers
f99ac8b28b - allow struct extensions in zscript.
This is mainly for splitting the Doom specific content off the main definitions for easier reuse.
2020-10-16 22:57:27 +02:00
Christoph Oelckers
3a81c07ecf - moved language switching code to 'common'. 2020-10-16 22:57:27 +02:00
Christoph Oelckers
a08d87beb3 - added a customization hook class for the menu.
Currently the only thing it does is abstracting the menu caption, but more can be added here.
Not exposed to modding yet, though, that's for later.
2020-10-16 22:57:26 +02:00
Christoph Oelckers
4b77064fc4 - moved most of the menu code into the backend. 2020-10-16 22:57:25 +02:00