Ricardo Luís Vaz Silva
f5507a7373
add foreach(a/l/a,p/l,p/a,p,f/l,p,f : blocklinesiterator/blockthingsiterator)
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
5cb0e3bc5b
add foreach v loop for maps
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
c58bd6efb5
add foreach k,v loop for maps
...
* make FxFunctionCall and FxMemberFunctionCall take a temporary for args, since they always move it
* fix type for cast
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
b6b6b0cb89
fix gcc/clang
2023-11-20 22:08:33 -05:00
Ricardo Luís Vaz Silva
5d5e7ca042
Decoupled IQM Model Animations
2023-11-20 22:08:33 -05:00
Ricardo Luís Vaz Silva
1a8dfd2dfa
ActorModelData cleanup in preparation for decoupled model animations
2023-11-20 22:08:33 -05:00
Christoph Oelckers
c73f805110
restore accidentally deleted 'else'.
2023-11-19 13:01:08 +01:00
Christoph Oelckers
0b36beb10d
serialize the remap data of custom translations defined at run time.
2023-11-19 12:44:22 +01:00
Christoph Oelckers
8e319a7669
allow comparisons between ints and translation IDs in pre 4.12 ZScript.
2023-11-19 07:47:23 +01:00
Christoph Oelckers
eaf43dfb96
fixed potential nullptr dereference.
2023-11-19 07:22:12 +01:00
Major Cooke
b6b1b25035
Added ZSprites.
...
- Effectively similar to Actors, but without the excess.
- Can be created with either the `level` function or the static `Spawn` function in ZSprite.
- STAT_SPRITE belongs to ZSprites only; ZSprites cannot be moved out of, nor can anything else be moved in to, this statnum.
Misc:
- Fixed (Sprite)Offset taking roll into account.
Crediting phantombeta, RicardoLuis0 and RaveYard for assistance.
2023-11-17 08:06:11 -05:00
Ricardo Luís Vaz Silva
3056786f38
Add missing loop
2023-11-14 20:14:48 +01:00
Rachael Alexanderson
747e55ce60
- fix GL ES switch appearing as 'Unknown' in the menu sometimes
2023-11-13 17:12:00 -05:00
Ricardo Luís Vaz Silva
fc130ccaac
Serialize Name Keys as Strings for maps
2023-11-13 06:19:10 +01:00
Christoph Oelckers
578a398981
use FTranslationID in the 2D code.
2023-11-09 23:04:11 +01:00
Christoph Oelckers
9f90c64727
use FTranslationID in the high level parts of the hardware renderer.
2023-11-09 23:04:11 +01:00
Christoph Oelckers
c5c822ea75
use FTranslationID in the model code.
2023-11-09 23:04:11 +01:00
Christoph Oelckers
8c5eb2c807
use FTranslationID in all places where strict type checking is needed.
...
This means all properties in serializable classes now use this wrapper type. The backend hasn't been changed yet
2023-11-09 23:04:10 +01:00
Christoph Oelckers
f0c9b1765e
gave translations a dedicated scripted type.
...
This is needed for implementing reliable serialization of custom translations. As long as they are merely ints they cannot be restored on loading a savegame because the serialization code does not know that these variables are special.
2023-11-09 23:04:10 +01:00
Christoph Oelckers
d5e9783324
fixed bad parameter types in direct native functions.
...
bool can cause undefined behavior here, these should be int.
2023-11-07 18:06:50 +01:00
Ricardo Luís Vaz Silva
e26f9fb13d
fix int assign optimization constants generating broken code because they weren't expected
2023-11-01 16:51:26 +01:00
Professor Hastig
4d88e82e32
added Wads.GetLumpLength.
2023-10-26 09:41:27 -04:00
Christoph Oelckers
28400a12f1
fixed savegame file name check.
...
Writer and reader for the savegame metadata were mismatched so the readback of non-ASCII filenames failed.
2023-10-25 17:27:41 +02:00
Rachael Alexanderson
6d1ebf5f27
- allow FORCEBACKCULLFACES to work with hud models
2023-10-25 10:57:48 -04:00
Professor Hastig
731cad7553
do not print all GL extensions to the log for the GLES renderer.
2023-10-25 16:23:44 +02:00
Christoph Oelckers
d65d1a3b82
minor backend update from Raze.
2023-10-17 20:54:27 +02:00
Ricardo Luís Vaz Silva
1957c15a41
give error instead of warning for zscript 4.12+ on return count mismatch
2023-10-15 18:51:05 +02:00
Ricardo Luís Vaz Silva
d699ba248e
warn when fewer returns than expected are given for a function
2023-10-15 18:51:05 +02:00
Ricardo Luís Vaz Silva
dccce46d5b
allow "&" instead of "out" in function pointer parameters
2023-10-11 19:46:53 +02:00
Ricardo Luís Vaz Silva
c935a95cb0
Add function pointer Properties
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
0e9135132d
Allow FindFunctionPointer to return non-virtual methods
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
d9a88d7080
Fix deserialization of methods inside function pointers
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
e61bd10bbf
Finish implementing function pointers
...
Allow using function literals with function pointers, allow narrowing classes parameter types, and widening classes in return types, allow pointers to non-static, non-virtual functions, add null checking to function calls
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
23c21b23c3
cleanup.
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
0ce4b3e7fb
update/cleanup function pointers
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
e3704605d8
Implement Static Function Pointers
2023-10-11 19:12:48 +02:00
Rachael Alexanderson
88b5d9aba1
- fix $PROGDIR expansion being case sensitive
2023-10-10 10:29:01 -04:00
Christoph Oelckers
79f2fc6553
backend update from Raze.
...
Mainly a VMFunction script type and some associated utilities.
2023-10-09 18:45:30 +02:00
Christoph Oelckers
ac646e96be
use copystring instead of strdup when reading environments.
...
The mismatched the underlying code which allocates via copystring.
2023-10-08 11:54:14 +02:00
Christoph Oelckers
448ca88bfd
fixed some signed-ness issues.
2023-10-08 08:11:56 +02:00
Ricardo Luís Vaz Silva
04c167f181
final final GetChars fix on linux
2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
f0be58e862
hopefully the last few GetChars fixes for linux
2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
f4fb583c6c
more GetChars fixes in linux/macOS
2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
c69941e49d
fix GetChars in linux/macOS
2023-10-08 07:31:59 +02:00
Christoph Oelckers
6055ff029d
the remaining GetChars additions.
...
The offending operator const char * no longer exists.
2023-10-07 23:44:01 +02:00
Christoph Oelckers
7a5a2858a2
yet even more GetChars calls added.
2023-10-07 23:29:24 +02:00
Christoph Oelckers
c94c63110e
added a third batch of GetChars call to FStrings.
2023-10-07 23:03:40 +02:00
Christoph Oelckers
89535b803a
Backend update from Raze.
2023-10-07 18:42:24 +02:00
Cacodemon345
4497d7fdaa
Update LZMA SDK to 23.01
...
As a bonus, add support for XZ-compressed files in ZIP
2023-10-07 17:31:24 +02:00
Ricardo Luís Vaz Silva
5e96dbc981
Add final and sealed as class options
2023-10-07 17:29:29 +02:00
Ricardo Luís Vaz Silva
42df40941c
change version, improve errors for array/map/struct copy
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
b9104e8aa9
Turn Map/Array assignments into Copy
...
Better error checking for struct assignment
Lock assignments behind version, don't break or "fix" existing code using older ZScript versions
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
a13b19815c
allow "&" instead of "out" in function parameters
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
7a9ca1ad3f
Allow dumping jit for mod functions only
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
3cb8f1be44
Don't try to generate code for abstract functions during JIT dump
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
fa8df5a4e5
make Array::Append faster for simple structs
...
This makes appending arrays of simple types faster
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
65ea4f91b6
fix TMap move insertion, was using the copy constructor due to a missing std::move
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
b60b3fc09a
fix PStruct::AddField not passing mDefFileNo
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
86e4d064e2
fix possible null dereference in FxStructMember::RequestAddress
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
fad350ff80
Make sure maps in return type don't segfault
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
3fc195c5b2
Improve handling of field names in error messages during Map/MapIterator compilation
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
87fcaab512
Fix Typo in Comment
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
766c61b3ed
Deduplicate Map/MapIterator Types' Code
2023-10-07 17:27:35 +02:00
Professor Hastig
ab8711b57a
removed several bad casts to 'long'.
...
The 'long' type should generally be avoided because its size differs on Windows and Linux/Mac so it is almost guaranteed to cause undefined behavior
2023-10-04 16:47:43 +02:00
Christoph Oelckers
48ba63c022
added even more explicit GetChars() calls.
2023-10-03 15:55:08 +02:00
Christoph Oelckers
1717ff47b2
add GetChars() accessors to many FString uses where const char* is wanted.
...
By no means complete, it's just a start to get rid of that automatic type conversion operator.
2023-10-03 14:27:39 +02:00
Rachael Alexanderson
d33f2697a3
- set default backend to Vulkan, if Vulkan fails go GLES not OpenGL
2023-10-01 10:35:11 -04:00
alexey.lysiuk
678cab7994
- fixed DumpCPUInfo()
definition for non-x64 platforms
...
fix #2188
2023-09-26 09:48:11 +03:00
Christoph Oelckers
7491361863
- do some cleansing of the GPU string and add CPU name when only getting an anonymous series name.
...
The cleansing is mainly for AMD's Linux drivers which report too much extraneous info here.
The CPU name helps when classifying anonymous iGPU series.
2023-09-24 22:20:50 +02:00
Christoph Oelckers
7f9df12431
- Survey: return more meaningful info for current OS and Vulkan version.
2023-09-20 20:03:07 +02:00
Christoph Oelckers
b3cb2fafc7
stats
2023-09-20 19:49:54 +02:00
Cacodemon345
ba9ce0e83f
Switch to miniz from zlib
2023-09-17 23:52:51 +02:00
Christoph Oelckers
71cc93f42c
- fixed: ZScript's lump reader may not truncate strings at 0 bytes, like all other callers of GetStringFromLump need.
2023-09-16 07:44:58 +02:00
Magnus Norddahl
45a2cbe081
Update zvulkan to latest version
2023-09-16 00:32:15 -04:00
Christoph Oelckers
b082c50502
- fixed doublebind check with automap.
...
When no doublebinds get passed to C_DoKey it may not set the doubleclick flag.
For the automap C_DoKey gets called twice, once with the automap bindings and once with the regular bindings and doubleclicks.
2023-09-15 22:00:05 +02:00
Christoph Oelckers
7f7edc4f72
- clear the Dehacked string table after passing it to GStrings.
...
For some reason std::move does not work here so make sure it won't stick around.
2023-09-15 21:46:53 +02:00
Christoph Oelckers
d001c3464d
- removed another bad assert from codegen.cpp
2023-09-15 20:51:05 +02:00
Professor Hastig
85ba35a1f1
- fix Strife-style startup asset check.
...
The STARTUP0 check is not only redundant but also was wrong. It already gets checked and validated in the asset loading loop, and this up-front check did not handle placement as a graphic.
2023-09-15 19:44:12 +02:00
Christoph Oelckers
eb93c764ee
- restrict msglevel filtering only to the notify display, not the console, log and debug output.
2023-09-15 00:40:41 +02:00
Gutawer
23b489960e
- put DTA_Localize at the end of the enum for backwards compat with integer usage
2023-09-14 23:24:42 +02:00
Gutawer
44d134298a
- add support for not localizing some text functions, and modify menu text fields to use this
2023-09-14 23:24:42 +02:00
Christoph Oelckers
4fd5f00c4b
- made all FileReader implementations 64 bit capable.
2023-09-14 21:45:38 +02:00
Christoph Oelckers
30c2524742
- validate text data before drawing the console.
2023-09-14 16:45:06 +02:00
Christoph Oelckers
ffa7891719
- remove pointless assert.
2023-09-14 16:39:21 +02:00
Professor Hastig
a5e1f3bcad
- fixed M_GetSavegamesPath for Linux.
2023-09-14 16:31:48 +02:00
Ricardo Luís Vaz Silva
0e70e95fa4
Add Inventory::ModifyBob and Inventory::ModifyBob3D
2023-09-14 16:28:38 +02:00
Ricardo Luís Vaz Silva
e61ab4cbe2
Expose OF_Transient to actors as bNoSaveGame
2023-09-14 16:28:23 +02:00
Christoph Oelckers
52ec2b2a5b
- listsounds CCMD
2023-09-13 21:10:08 +02:00
Professor Hastig
8b31e0d3b6
- fix bad stringpool setup in filesystem.
...
Doing it in the constructor does not work because InitMultipleFiles will clear everything again before building up the directory so it would always be null.
This triggered another bug in file_directory.cpp which used the constructor's unvalidated parameter.
2023-09-13 16:42:22 +02:00
Christoph Oelckers
7f61266621
- fixed memory leaks in file system management
2023-09-11 23:22:24 +02:00
Ricardo Luís Vaz Silva
0243efd851
Fix pointer math in FileSystem to stop debug assertions in std::vector
2023-09-11 04:41:00 -04:00
Christoph Oelckers
a44f7a72ca
- fixed voxel loader
2023-09-10 21:31:53 +02:00
Ricardo Luís Vaz Silva
bf0e74447d
add float.equal_epsilon and double.equal_epsilon
2023-09-07 10:19:10 -04:00
Christoph Oelckers
e7a79b0d44
- string conversion fixes
2023-09-06 00:19:36 +02:00
Christoph Oelckers
17ab6e851a
- make sure that FileWriter::Printf never writes null characters.
2023-09-03 23:48:42 +02:00
Christoph Oelckers
ef8fd472a8
- fixed bad virtual override in FSheetTexture.
2023-09-03 19:52:53 +02:00
Christoph Oelckers
4baabf98c4
- use stb-image for JPEG decoding.
...
the statically provided library did not provide any advantage over it whatsoever and even libjpeg-turbo's better performance cannot really play out here so ease of use and getting rid of a dependency wins.
2023-09-03 08:34:58 +02:00
Ricardo Luís Vaz Silva
d0a955fef0
Allow disabling colors for NameAllKeys
2023-09-01 18:25:22 +02:00
Christoph Oelckers
ccd39d6df7
- code cleanup
2023-08-25 20:07:48 +02:00
Christoph Oelckers
afecb1ca0f
- avoid high stack usage in anmtexture.cpp
...
MSVC warned about this one.
2023-08-25 20:07:48 +02:00
Christoph Oelckers
e0b3bdaadc
- fixed directory loader.
2023-08-23 22:09:58 +02:00
Christoph Oelckers
c6e2e0add2
- fix compilation
2023-08-23 18:26:42 +02:00
Cacodemon345
7c90ea6b84
- Convert the entire image backend infrastructure to be animation-friendly
2023-08-23 18:18:45 +02:00
Christoph Oelckers
53d8a5bb2c
- Reverted JPEG XL support because the project is not really usable on vcpkg.
2023-08-23 18:18:45 +02:00
alexey.lysiuk
79be69ec4a
- implemented FS_FullPath()
function for POSIX
2023-08-23 14:57:22 +03:00
alexey.lysiuk
bfefc12427
- fixed a bunch of Linux and macOS compilation errors
2023-08-23 12:34:33 +03:00
Christoph Oelckers
e28d3b7f0b
- fix directory check in POSIX directory loader.
2023-08-22 23:15:23 +02:00
Cacodemon345
99fd354dd9
Fix copyright mistake
2023-08-22 23:11:00 +02:00
Cacodemon345
44a3bd719c
JPEG XL implementation
2023-08-22 23:11:00 +02:00
Christoph Oelckers
5a1b858c0e
- added some safety checks for reading empty lumps into a std::vector.
...
These can trip the internal safety checks, even though nothing gets read in.
2023-08-22 22:59:29 +02:00
Christoph Oelckers
42283f56ab
- added a quick header check for WebP before loading the entire file for real identification.
...
This allows quick rejection of virtually everything that's not a WebP without loading the entire file first.
2023-08-22 22:54:54 +02:00
Christoph Oelckers
1748477086
- use FileData for readinf WebP
2023-08-22 22:54:54 +02:00
Christoph Oelckers
c77ece4922
moved private definitions out of public headers.
2023-08-22 22:54:54 +02:00
Christoph Oelckers
ebb71cebf1
- put the entire filesystem code into a namespace and created some subdirectories.
2023-08-22 22:54:54 +02:00
Christoph Oelckers
94c9ee4593
- got rid of the remaining persistent std::strings in the file system.
...
This also uses the string pool now.
2023-08-22 22:54:54 +02:00
Christoph Oelckers
929cae2f41
- rename File_Name back.
2023-08-22 22:54:53 +02:00
Christoph Oelckers
8e250abe0a
- fix lump name setup.
2023-08-22 22:54:53 +02:00
Christoph Oelckers
54dc687436
- use the string pool for storing resource file names.
2023-08-22 22:54:53 +02:00
Christoph Oelckers
6d2047eef6
- also use the stringpool for the lump names in the filesystem.
2023-08-22 22:54:53 +02:00
Christoph Oelckers
3d673e3f20
- use a string pool to store the filenames in FResourceLump.
2023-08-22 22:54:53 +02:00
Christoph Oelckers
4f8305de5f
- use the lump cache directly for FileData.
...
This was the final puzzle piece to allow using memory mapped files. :)
2023-08-22 22:54:53 +02:00
Christoph Oelckers
2c2bf0265f
- refactored all places which treated FileData as zero terminated.
2023-08-22 22:54:53 +02:00
Christoph Oelckers
79e6d068a9
- got rid of the last two TArrays in the filesystem class.
2023-08-22 22:54:53 +02:00
Christoph Oelckers
535eb9a853
- use std::vector in GetFilesInFolder
2023-08-22 22:54:52 +02:00
Christoph Oelckers
2a6fb6da84
- use better hash function.
...
This is djb2 which is supposedly one of the best string hashing functions around.
Avoids annoying dependencies and is a lot simpler and faster than the alternatives.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
5433430767
- FString is always gone.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
3e3526f1ec
- use a local hash function in the file system.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
acd5911cd4
- StringPool class added
...
This is a specialized stripped doen FMemArena.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
4906d287cb
- use std::vector<std::string> to pass the file list to InitMultipleFiles
2023-08-22 22:54:52 +02:00
Christoph Oelckers
a0d679b84b
- FileData cleanup and uncoupling from FString.
...
Work is still needed to allow this to use the lump cache directly because some decisions in the past made this data padded by a zero byte.
2023-08-22 22:54:52 +02:00
Christoph Oelckers
ca1d7fd539
- store longName in a std::string and use std::vector for FileInfo
...
TArray cannot handle std::string so this must both be changed together.
2023-08-22 22:48:06 +02:00
Christoph Oelckers
8a5d3c096b
- return a std::string from GetFileFullPath
2023-08-22 22:18:54 +02:00
Christoph Oelckers
25b7b18c3d
- got rid of the two copying variants of fileSystem.GetFileShortName.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
c5b5b2b873
- cleanup.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
eccbafc1bc
- let FileData.GetString only return a const char pointer.
...
Not exposing the implementation will allow a lot more optimization in the backend and we also want to get rid of FString here.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
5398045f7d
- got rid of FileSystem::GetFileData.
...
Using FMemFile is better in all these places.
2023-08-22 22:18:53 +02:00
Christoph Oelckers
21d6eb99eb
use std::vector as return value for the FileReader's buffer readers.
2023-08-22 22:18:21 +02:00
Christoph Oelckers
12c7413149
- handle ZLibError
2023-08-22 21:49:56 +02:00
Christoph Oelckers
7f024debfd
- clean up includes in 3 files.
2023-08-22 21:49:56 +02:00
Christoph Oelckers
9f45cc0469
- use snprintf for FileWriter::Printf.
...
pulling in stb_sprintf here may be tricky if the consuming application uses different options, so better not use it here.
2023-08-22 21:49:55 +02:00
Christoph Oelckers
def6bffdfc
- use std::vector for the MemoryArrayReader
2023-08-22 21:49:55 +02:00
Christoph Oelckers
2671394961
- only use standard types in WriteZip's API.
2023-08-22 21:49:55 +02:00
Christoph Oelckers
825f92b274
- use std::string in FZipFile::Open
2023-08-22 21:49:55 +02:00
Christoph Oelckers
959d0e93f7
- fixed and cleaned up file_whres.cpp
2023-08-22 21:49:55 +02:00
Christoph Oelckers
f0bbc32bae
- add m_swap.h to several files.
2023-08-22 21:49:55 +02:00
Christoph Oelckers
454af06acf
- use a local byteswap header in the file system.
2023-08-22 21:49:55 +02:00
Christoph Oelckers
771fa2b51c
- rewrote dir CCMD using ScanDirectory and avoiding I_ChDir entirely.
2023-08-22 21:49:55 +02:00
Christoph Oelckers
5f3d25ef44
- use ScanDirectory in all places where the findfile API was used.
...
This allows to completely hide its implementation details from the rest of the code which only gets a list of file names now.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
566a8f58a7
- disable dir CCMD.
...
The implementation of this one is garbage, it needs to be redone without I_ChDir.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
219b3fb9f9
- uncoupled directory loader from the rest of the engine.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
5a32f98bde
- first stage of uncoupling the file system from the engine.
...
This replaces several FStrings and TArrays with std::string and std::vector.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
2524ea6b0e
- moved linked textures from file system to texture manager.
2023-08-22 21:49:54 +02:00
Christoph Oelckers
1dc47f91c2
- file system error management refactoring.
2023-08-22 21:49:54 +02:00
Cacodemon345
145450a044
WebP image support
2023-08-22 19:14:21 +02:00
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
Christoph Oelckers
9fbac8f1d4
- moved all service code to 'common'.
...
This needs to work on Raze as well!
2023-03-26 10:55:09 +02:00
Christoph Oelckers
7537f415ce
- update comment on SSBOs.
2023-03-26 10:43:27 +02:00
Christoph Oelckers
c1cb7783a6
- fixed a few more leftover Clang warnings.
2023-03-26 09:27:46 +02:00
Christoph Oelckers
cbff526cc7
- updated RapidJson library.
...
This still needed the Nan hotfix to be reapplied. The problem hasn't been addressed yet. :(
2023-03-26 08:48:54 +02:00
Christoph Oelckers
47b76180d6
- fixed several warnings emitted by Clang.
2023-03-26 08:48:54 +02:00
Ricardo Luís Vaz Silva
9e19134016
Fix possible memory corruption in TArray::Delete(index, count)
2023-03-22 18:59:59 +01:00
RaveYard
9514d1b120
Fix TArray allocating 0 bytes in constructor
2023-03-19 16:11:07 +01:00
Ricardo Luís Vaz Silva
590475a8e3
Improve Services
2023-02-19 08:11:08 +01:00
Christoph Oelckers
087050c201
- use uniform buffers for dynamic lights everywhere.
...
Branching on SSBO content does not work that well on NVidia so it is better disabled.
So far only implemented for OpenGL - Vulkan needs more work.
2023-02-18 12:22:26 +01:00
Rachael Alexanderson
ea720605d4
Revert "Fixed an error where implicit pointer casts should've failed but didn't."
...
This reverts commit 68d3f474ce
.
# Conflicts:
# src/common/scripting/backend/codegen.cpp
2023-02-11 11:30:05 -05:00
Christoph Oelckers
17800f2504
- removed bad #include
2023-02-11 12:37:28 +01:00
Christoph Oelckers
f6bfc48d9f
- Backend update from Raze.
2023-02-11 12:05:45 +01:00
CandiceJoy
68d3f474ce
Fixed an error where implicit pointer casts should've failed but didn't.
...
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-02-11 00:02:51 -05:00
Emile Belanger
c41b07531a
Fixing GLES mode to work on real GLES hardware and OpenGL 2 again
2023-02-10 13:44:11 -05:00
Ricardo Luís Vaz Silva
1dcdfcc4d3
Mark const methods as const in pseudo-generics
2023-02-09 17:02:40 +01:00
Ricardo Luís Vaz Silva
569263efe9
Extend pseudo-generics system used by maps to dynarrays
2023-02-09 17:02:40 +01:00
Rachael Alexanderson
e29011ecde
- (win32) increase compatibility with indirect renders/inputs - instruct the operating system that the cursor is actually hidden - for some API's this actually gives a hint that the cursor is grabbed, which allows for relative mouse movement. In particular, Parallels and Microsft RDP need this.
2023-02-07 13:47:39 -05:00
Ricardo Luís Vaz Silva
b50d7f4db5
Let custom CVar handlers to be called on cloned cvars
2023-02-01 10:35:28 -05:00
Ricardo Luís Vaz Silva
c8f3aa3fd1
ZScript Custom CVars -- ONLY WORKS FROM THE CONSOLE
2023-01-29 14:42:20 -05:00
Ricardo Luís Vaz Silva
8dbe0ae353
Don't change static variable when updating callback for single CVars
2023-01-29 14:42:20 -05:00
Emile Belanger
c8bd2deb1e
GLES: Fix first wipe
2023-01-29 20:03:05 +01:00
CandiceJoy
4d9e60574d
Added scroll bar for wad picker to Linux.
...
Min height is set to 150 for GTK3, or none for GTK2.
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-29 04:14:20 -05:00
Christoph Oelckers
ec04a95929
- validate the buffer size in HWViewpointBuffer::Set2D.
...
This was causing crashes in Dragon Sector when writing past the buffer's end.
2023-01-27 18:25:13 +01:00
CandiceJoy
70d355cfa3
Fixed a bug where calling an invalid virtual function would cause a crash.
2023-01-26 08:52:23 -05:00
Ricardo Luís Vaz Silva
4c7e9c6193
Change CheckValue
to multi-return, due to unsupported out int/bool
2023-01-25 17:32:54 +01:00
CandiceJoy
1e39202484
Added check for invalid class on in-VM instantiation
...
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-24 22:10:34 +01:00
Emanuele Disco
faaf938b18
refactor: add some logs to help understand what is happening during soundfont selection.
...
It helps understand what soundfont is currently used
refs: https://github.com/ZDoom/ZMusic/pull/44
2023-01-24 07:19:23 -05:00
Ricardo Luís Vaz Silva
b47aa37919
Add missing methods (GetIfExists/CheckValue) to Map pseudo-generics
2023-01-23 17:15:08 +01:00
Ricardo Luís Vaz Silva
a397a93c25
Add Missing Read Barriers to Map Get Functions
2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
fed2d11be5
Fix iterator invalidation for Map::Get
2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
decba68225
Map::GetIfExists and Map::CheckValue
2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
ed6384edc6
Add internal
variable support to files outside gzdoom.pk3
2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
d4e9438273
rename CheckWritable to IsWritable, and invert its output since it's always negated
2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
da06212134
Add mDefFileNo to Fields
2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
5ba1e96d29
Add mDefFileNo to Classes/Structs
2023-01-20 22:34:26 +01:00
Rachael Alexanderson
20eb821acb
- indicate in the startup window title when GZDoom is compiled for ARM64 Windows
2023-01-17 02:36:21 -05:00
Sally Coolatta
45796505de
Fix two different portable names
...
M_GetConfigPath uses GAMENAMELOWERCASE_portable.ini, but IsPortable() checks for GAMENAME_portable.ini. Doesn't have much of an impact on base GZDoom since it's case-insensitive, but can matter for engine forks -- IMO it should just be consistent either way.
2023-01-16 23:22:36 -05:00
Christoph Oelckers
3ea49a66d1
- cleaned up the pitch management in the sound backend.
...
This now treats all pitch methods equally instead of the preferential treatment of Doom's original pitch hack. Most importantly, the sound channel now stores the pitch as a floating point value instead of 9.7 fixed point.
snd_pitched now also gets checked in the sound engine, not the low level interface.
2023-01-15 14:01:37 +01:00
Christoph Oelckers
5b7826f68b
- set lightblendmode to 0 when setting up a 2D viewpoint.
...
2D never uses dynamic lights so this should always be 0 - and eliminates another place in the backend referencing game data.
2023-01-15 09:21:01 +01:00
Christoph Oelckers
1561616498
- pass colormap to MakeGoodRemap as parameter.
...
Removes a Doom dependency and avoids double reading of the COLORMAP lump.
2023-01-15 08:34:32 +01:00
Christoph Oelckers
bafd6be342
- removed backend dependencies on game data.
2023-01-15 08:23:26 +01:00
Christoph Oelckers
c8b3d95d6f
- backend update from Raze.
2023-01-15 08:23:26 +01:00
Kevin Caccamo
26518f8660
Fix Y position of characters in monospace fonts
...
The issue was either a typo, or a false assumption that all monospace font characters would be in squares on the sheet. Fixes #1937
2023-01-15 07:41:54 +01:00
Ricardo Luís Vaz Silva
1ebd4f0d41
Add Tonemap support for Unclamped lighting mode
2023-01-14 11:29:12 -05:00
Ricardo Luís Vaz Silva
8e7897233e
Add Alternate Light Blending Options
2023-01-14 11:29:12 -05:00
Rachael Alexanderson
aa061562cd
- manually reimplement pull request #1850
2023-01-14 11:23:10 -05:00