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
Cacodemon345
22271d146a
Switch to vcpkg
for library dependencies
2023-08-21 21:12:00 +02: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
2261dde791
Fix for Clang compilers
2023-08-14 19:30:50 +02:00
Cacodemon345
ce8753c6e1
Replace cxx_thread_local check
2023-08-14 19:30:50 +02: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
b695e845e1
- eliminated several pointless string copies in network code.
2023-08-12 10:56:34 +02:00