Commit graph

1,172 commits

Author SHA1 Message Date
alexey.lysiuk
ae2fa11963 - added safeguards against very early access to console variables in Cocoa backend
for an unknown reason, application activation functions can be called way too early during app launch
`S_SetSoundPaused()` function tries to read values of `i_pauseinbackground` and `i_soundinbackground` console variables before their initialization leading to a null pointer dereference

https://forum.zdoom.org/viewtopic.php?t=78092
2023-08-22 14:58:06 +03:00
Christoph Oelckers
7fee89d1f5 - uncouple the file system from the engine's Printf function.
This is needed to use it in non GZDoom based projects.
2023-08-17 21:36:22 +02:00
Christoph Oelckers
9b790d23a8 - optimization of WideString and FileReader::Printf.
Both now omit the intermediate FString as the target buffer can be directly written to.
WideString was also moved to utf8.cpp/h to uncouple from zstring.
2023-08-17 18:45:33 +02:00
Cacodemon345
a4573b4ad1 Fix QOI image loading 2023-08-17 08:56:50 -04:00
Cacodemon345
14a3cf8fc2 CMakeLists upgrade to 3.16 and cleanup
* Remove precompiled header hack
* Fixes for compilation on VS2022 Debug configurations
2023-08-14 19:30:50 +02:00
Christoph Oelckers
74b3d8e0a0 - optimized the QOI loader
* removed the intermediate pixel buffer
* instead of calling the file API for each single byte, load it into a buffer and use direct memory access. Using a file API like this can be magnitudes slower, depending on the underlying data.
* don't store the header in the image source object, it is never used again after validatipn.
2023-08-13 19:03:20 +02:00
Cacodemon345
c727e40e6c Add support for QOI image formats 2023-08-13 06:04:15 -04:00
Cacodemon345
fe7beaaf17 Add support for HDR canvas textures
Vulkan only.
2023-08-12 06:46:05 -04:00
Christoph Oelckers
a675e4add8 - removed unused ReplaceString function. 2023-08-12 10:28:18 +02:00
Christoph Oelckers
16cefb7528 - some angle cleanup
* clean out the angle conversion helpers from basics.h.
* use degrees instead of radians in TMatrix3x3.
2023-08-12 10:10:27 +02:00
Christoph Oelckers
0c9b652583 - moved EStateUseFlags to a more fitting header and deleted unused RAD2BAM inlines 2023-08-12 09:38:41 +02:00
Christoph Oelckers
b5c1237f93 - removed NOVTABLE #define.
This was used on just two small base classes, the overall savings are zero.
2023-08-12 09:31:33 +02:00
Christoph Oelckers
a46c0a52b6 - re-added the UTF-8 char formatter which is needed for ZScript. 2023-08-09 11:52:08 +02:00
Christoph Oelckers
fdad3186a6 - replaced zstrformat with stb_sprintf.
The main advantage here is that this allows to get rid of the gdtoa dependency, it is also preferable to have some code here that's being maintained.
Feature-wise both are mostly identical, stb also support MSFT integer size modifiers and hexadecimal floats.
2023-08-09 11:51:46 +02:00
Christoph Oelckers
d3fa699782 - updated stb_image.h. 2023-08-09 08:25:04 +02:00
Christoph Oelckers
979f4311fa - moved stb_image.h to third party folder. 2023-08-09 08:22:47 +02:00
Ricardo Luís Vaz Silva
e6124627e4 allow explicit casts between vectors of different underlying types 2023-08-02 01:05:24 -04:00
Player701
eec08f0e24 - hopefully fixed the "is" operator to work with readonly pointers. 2023-08-02 00:42:40 -04:00
Ricardo Luís Vaz Silva
6164d883c9 Fix Linux compilation 2023-08-02 00:37:24 -04:00
Ricardo Luís Vaz Silva
0192392256 Individual Joystick Enable/Disable Toggles 2023-08-02 00:37:24 -04:00
alexey.lysiuk
62f37079a7 - fixed compilation with Clang
src/common/scripting/backend/vmbuilder.cpp:869:88: error: cannot pass non-trivial object of type 'FString' to variadic method; expected type from format string was 'char *' [-Wnon-pod-varargs]
src/common/scripting/backend/vmbuilder.cpp:916:85: error: cannot pass non-trivial object of type 'FString' to variadic method; expected type from format string was 'char *' [-Wnon-pod-varargs]
2023-07-22 13:22:53 +03:00
Christoph Oelckers
81fb9a26b2 - backend update from Raze.
* add QualifiedName to VMFunction and allocate these static names from the class data memory arena instead of using FStrings.
* null pointer type checks in the VM added to avoid crash on bad codegen.
2023-07-22 09:55:49 +02:00
Joshua Watt
d2ac72129d posix: sdl: Stop reading STDIN on EOF
If EOF is read on stdin (such as when it is /dev/null), stop calling
select() on it. Otherwise, the code goes into an infinite loop
attempting to read from stdin which is always ready but never has any
data and it never calls the timer callback to progress.
2023-07-17 22:57:28 +02:00
Professor Hastig
666a99f204 lightmode refactor
* make all legacy light modes except 'Doom' MAPINFO only. A CVAR still exists for testing but its value won't be saved to the config.
* user can only select between "performance', 'software' and 'vanilla'. 'performance' is the old 'Doom' mode which is still needed to speed things up on low end hardware.
* MAPINFO can not enforce any of the two software light modes, as low end users require the option to change this to the 'performance' setting. Selecting one will always revert to the user's light mode selection.
2023-07-17 22:50:05 +02:00
Ricardo Luís Vaz Silva
71d4eb66f2 Clear Services Map during VM Shutdown 2023-06-28 20:19:43 +02:00
Ricardo Luís Vaz Silva
c6978c23ab Disable FName as a native parameter 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
49eae74272 assert that FName is a POD and as such is passed directly on registers, so that if it changes to be a non-pod, it won't silently break parameters 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
61d68eb2d6 Rewrite changed model rendering code, and change how model skins are handled 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
5b85557ddb add TArray::AppendFill for appending a single value multiple times 2023-06-26 00:36:36 -04:00
Ricardo Luís Vaz Silva
30e7b30c45 Simplify DirectNativeDesc, allow FName as a native parameter 2023-06-26 00:36:36 -04:00
Rachael Alexanderson
bc41356b35 - minor formatting fix 2023-06-19 04:38:35 -04:00
l2ksolkov
01dfcc7d95 Fix compilation on FreeBSD
Fixes #2073
Changes get_current_dir_name to functionally equivalent getcwd. Also moves "printf.h" to outside linux ifdef.
2023-06-19 04:31:18 -04:00
Christoph Oelckers
4538236a38 - cleaned i_music.h off external dependencies.
* take I_BuildMIDIMenuList out of it
* pass the command line state to disable music from the init call.
* don't declare internal 'nomusic' variable in the header.
2023-06-17 09:49:15 +02:00
Christoph Oelckers
89d8c7b4fe - minor cleanup of i_soundinternal.h. 2023-06-16 20:51:26 +02:00
Christoph Oelckers
62b9243142 - made some changes to vectors.h so that it can be used without the floating point function replacements.
Using __has_include and providing fallback implementations.
2023-06-16 20:51:25 +02:00
Christoph Oelckers
40679294df - fixed some warnings. 2023-06-16 20:50:48 +02:00
alexey.lysiuk
3ddf72104b - added detection of macOS 14 2023-06-11 12:14:58 +03:00
alexey.lysiuk
170cc8d7ba - reduced string duplication in macOS detection 2023-06-11 12:14:35 +03:00
l2ksolkov
245dac814e Add missing include guards 2023-05-29 07:35:26 +02:00
Christoph Oelckers
acfe82b9a8 - Backend update from Raze. 2023-05-27 09:31:17 +02:00
Ricardo Luís Vaz Silva
9ca30826db Fix win32 mouse cursor permanently disappearing 2023-05-14 07:15:41 +02:00
Rachael Alexanderson
a5f0174e07 - addendum to previous commit: forgot one line 2023-04-30 10:50:14 -04:00
Rachael Alexanderson
e5fcb331df - remove vid_gpuswitch and all its handling; it is only as of now useful in old unsupported versions of Windows 7/8/10 which are no longer supported 2023-04-30 10:38:46 -04:00
Ricardo Luís Vaz Silva
86bc9cafd4 Fix value of X = Y when Y is an int constant 2023-04-12 22:57:06 +02:00
Christoph Oelckers
e3f8230035 - fixed handling for Turkish i's.
* islowermap and isuppermap were not set for the new characters.
* special handling for the lowercase dotted i in allcaps fonts returned the wrong character.
2023-04-05 19:01:19 +02:00
Mitchell Richters
f1f6e3a607 - Move invertmouse CVARs into common code.
* Removes duplication of CVAR definitions between Raze and GZDoom.
2023-04-04 17:11:28 +02:00
Mitchell Richters
034202e6f6 - Properly fix default mouse x sensitivity. 2023-04-04 17:08:02 +02:00
Christoph Oelckers
25c984ff6e - fixed crash when checking the extended character list for the current language.
For English this will be null because it got no extended characters.
2023-04-03 17:03:44 +02:00
Christoph Oelckers
15465f0785 - backported RapidJSON fix from Raze. 2023-04-01 12:45:55 +02:00
Christoph Oelckers
7e1982fa65 - adapted font system to properly handle Turkish.
Those i's are really messy, especially when dealing with allcaps or pure lowercase fonts.
2023-03-31 17:40:19 +02:00