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
Ricardo LuÃs Vaz Silva
80d1c61714
Fix MapIterator<X, String>::GetValue
2023-01-14 00:30:43 +01:00
Marisa the Magician
81e7d77b44
Fix diffuse-only material shaders not applying.
2023-01-12 17:01:59 +01:00
Christoph Oelckers
aceafecce6
- optimized sheet font texture generation.
...
Instead of reloading the base image over and over again, let's cache it so that less time is needed for each single character.
2023-01-07 19:12:19 +01:00
Christoph Oelckers
4c751db489
- silence some warnings.
2023-01-07 18:35:30 +01:00
Christoph Oelckers
1a0aa95ff4
- changed return value of CreatePalettedPixels.
...
The new struct will allpw return of static pixel data without reallocation and copying.
2023-01-07 17:55:55 +01:00
Christoph Oelckers
4e4642d0ed
- fixed buffer size checks for raw textures.
2023-01-07 16:15:32 +01:00
Marisa the Magician
0e5c6e37b1
Prevent important messages from being accidentally filtered.
2023-01-04 17:54:09 +01:00
CandiceJoy
b61be581d9
Fixed custom height and width not saving.
...
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-01 22:52:55 -05:00
Ricardo LuÃs Vaz Silva
6072260b3f
Fix FxMultiAssignDecl type
2022-12-23 15:54:23 +01:00
Rachael Alexanderson
adfef56fd8
- fix OpenGL ES selection on the windows startup dialog
2022-12-21 11:04:41 -05:00
Ricardo LuÃs Vaz Silva
c8fe074041
Multi-Assign Declarations
2022-12-20 23:22:37 +01:00
Magnus Norddahl
7b864fd665
Add vulkan pipeline cache
2022-12-19 17:40:27 +01:00
Marisa the Magician
e99bf2b036
Update and clean up UE1 model loader.
2022-12-19 14:00:43 +01:00
Ricardo LuÃs Vaz Silva
43880bbbe1
Expose StripLeft and StripLeftRight to ZScript
2022-12-19 14:00:09 +01:00
Ricardo LuÃs Vaz Silva
3ffbda5526
Fix StripLeftRight
2022-12-19 14:00:09 +01:00
Ricardo LuÃs Vaz Silva
fb33a29400
Error out instead of crashing for vector out variables
2022-12-18 19:46:22 +01:00
Christoph Oelckers
941c0850ba
- Backend update from Raze.
...
Mainly optimizations for the sound system and texture manager.
2022-12-18 16:19:18 +01:00
Ricardo LuÃs Vaz Silva
46d36cf5c7
add BobWeapon3D
2022-12-09 21:49:38 +01:00
Ricardo LuÃs Vaz Silva
dce456783d
Add support for Vector types as properties
2022-12-08 18:12:27 +01:00
Ricardo LuÃs Vaz Silva
b610f4206f
Fix wrong assumptions about actor initialization in Map/MapIterator
2022-12-05 19:23:42 +01:00
Christoph Oelckers
aedf0e3ce5
- fixed GC::FullGC not collecting everything anymore.
...
With the delayed handling of internal references of destroyed objects the function now returned without making sure that it really got everything.
Repeating until it cannot delete anything new anymore makes it work again as intended.
2022-12-05 12:29:03 +01:00
Magnus Norddahl
449501c75b
Fix compile error on macOS
2022-12-05 07:49:43 +01:00
Magnus Norddahl
4c85f461b1
Avoid calling vulkan functions before the instance has been created
2022-12-05 07:49:43 +01:00
Magnus Norddahl
0a80ad3b83
Add missing forward declarations
2022-12-05 07:49:43 +01:00
Magnus Norddahl
cc96742d18
Add missing include statement
2022-12-05 07:49:43 +01:00
Magnus Norddahl
03ab65ab1e
Fix linux compile errors from the zvulkan switch
2022-12-05 07:49:43 +01:00
Magnus Norddahl
6a005e3a2a
Switch vulkan backend to use the zvulkan library
2022-12-05 07:49:43 +01:00
Magnus Norddahl
7ae07d614e
Add all the functionality from the win32 startup window to the GTK version
2022-12-05 07:48:21 +01:00
Ricardo LuÃs Vaz Silva
24d27a6746
Fix PMapValueReader warning on Clang/GCC
2022-12-04 23:53:51 +01:00
Ricardo LuÃs Vaz Silva
92761feee1
Add casts to F32 Map/MapIterator functions to get rid of double to float conversion warnings
2022-12-04 21:15:46 +01:00
Mitchell Richters
c99b18dc45
- Bring in interpolatedvalue()
for TRotator<>
objects from Raze.
...
* Would have come in eventually but I may need it.
2022-12-04 15:11:17 +01:00
Ricardo LuÃs Vaz Silva
8b6a714d41
Map<K,V> and MapIterator<K,V> for ZScript
2022-12-04 15:11:00 +01:00
Christoph Oelckers
1e5e65546d
Revert "- add support for not localizing some text functions, and modify menu text fields to use this"
...
This reverts commit 91d3c4b606
.
This completely breaks the menus, so it needs to go.
2022-12-04 08:13:04 +01:00
Gutawer
91d3c4b606
- add support for not localizing some text functions, and modify menu text fields to use this
2022-12-03 23:30:38 +01:00
Christoph Oelckers
e8d7e0227b
- fixed two memory leaks.
2022-12-03 20:39:54 +01:00
Ricardo LuÃs Vaz Silva
1a7a56ce39
Fix GC ignoring DynArrays inside fixed Arrays
2022-11-27 08:19:41 +01:00
Marisa the Magician
f256e7bb3d
Fix UV "fix" for OBJ models.
2022-11-25 23:57:44 +01:00
Marisa Heit
70df34674b
AST debug cleanup
...
- Add ArrayIterationStmt printer.
- Mark ZCC_TreeNodes as const for the AST printers.
- Use static_assert to catch missing printers without needing to run with -dumpast.
2022-11-25 19:20:24 +01:00
Christoph Oelckers
4103b282bb
- fixed: The raw texture caching in the texture manager did not work.
...
This erroneously checked for FrontSkyLayer.
Also including some change here that allows explicit setting of the RawTexture (not used yet.)
2022-11-25 12:29:36 +01:00
Christoph Oelckers
28f8d4570d
- silence compiler warning
2022-11-25 12:27:54 +01:00
Christoph Oelckers
473221bb33
- fixed SoundEngine::isValidSoundId.
...
This never accounted for linked and random sounds. It never got noticed because it never was used to validate anything essential before.
2022-11-25 10:28:18 +01:00
Marisa the Magician
8206c29edf
Allow assigning IQM frames by animation name plus frame offset.
2022-11-25 08:12:23 +01:00
Boondorl
f322792783
Added animation support for OptionMenus
...
Adds Animated and AnimatedTransition MENUDEF instructions for OptionMenus. Added DontDim and DontBlur MENUDEF instructions for all menus.
2022-11-25 00:39:05 +01:00
Marisa the Magician
b002d5b8ec
Fix crash if Animation is not explicitly assigned in MODELDEF.
2022-11-25 00:37:38 +01:00
Christoph Oelckers
ffdd0a11ea
- fixed memory leak in ZScript backend.
...
This allocated some memory and never freed it again. A TArray would have been better - but since we know the maximum size is 4 we may just use a static array here to keep things as efficient as possible.
2022-11-24 23:52:53 +01:00
Christoph Oelckers
65a26d6779
- removed the string constructors from FSoundID.
...
Due to C++ conversion rules this was a bit too volatile. There's really not enough places where being able to pass a string directly into the sound API was beneficial - the two most frequent functions now got overloaded variants.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
b89c4affae
- removed the string assignment operators.
...
These all caught literal 0's as well
2022-11-24 23:52:52 +01:00
Christoph Oelckers
d173c0453c
- handle all remaining places of sound ID conversions after removing the conversion operators.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
160633a4a2
- migrate a large part of the sound code to FSoundIDs.
...
This has always been a wild mixture of IDs and ints.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
1a6da52961
- use FSoundID in SoundEngine's interface.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
d13f12cc37
- this should take care of the S_* interface.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
7e8de9d1ba
- made more use of FSoundID.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
4d1b44d9e3
- eliminated GetSounds from the sound engine's interface.
2022-11-24 23:52:51 +01:00
Rachael Alexanderson
f7f67114ed
- move posix I_GetGogPaths() stub to program-specific code for use later
2022-11-24 17:40:26 -05:00
Boondorl
599b00f2ea
Extended MENUDEF Functionality
...
*Added Font and TextureID types to Option and Image Scroller items (List items already have these)
*Added "Class" instruction for Image Scrollers
*Added ability for Option items to read in their OptionMenuDescriptor (List and Image Scroller items already have this)
*Added "ForceList" instruction for Lists so that skill, playerclass, and episode menus don't get overridden
2022-11-22 07:43:23 +01:00
Gutawer
63c2d93033
- quaternion improvements
2022-11-21 07:20:43 +01:00
Gutawer
9f0c518be9
- add remaining quaternion function implementations
2022-11-21 07:20:43 +01:00
RaveYard
540f778047
Quaternion structure and math ops
2022-11-21 07:20:43 +01:00
Ricardo LuÃs Vaz Silva
802f77ab19
Fix checking of wrong variable in String..Float concatenation
2022-11-19 23:55:17 +01:00
Rachael Alexanderson
b082ad9cef
- fix colormap remapping when colormap entries may have fullbright entries which should not be considered duplicates
...
- this should address the "fullbright teeth" issue with the imps in KDiKDiZD: https://forum.zdoom.org/viewtopic.php?t=76790
2022-11-18 07:42:09 +01:00
Christoph Oelckers
eb97346b0e
- stop all sound before showing ENDOOM.
2022-11-16 17:08:11 +01:00
Christoph Oelckers
29b4418c3a
- added 'foreach' loop to ZScript.
...
Syntax:
foreach(variable : array)
{
}
the variable's type is automatically deducted.
2022-11-15 21:34:45 +01:00
Christoph Oelckers
4994e114c8
- backported Vector*::Sum() from Raze.
2022-11-14 19:49:37 +01:00
RaveYard
31ac1bd414
Initial implementation of Quaternion type in ZScript
2022-11-13 22:48:19 +01:00
Emile Belanger
f41f393e91
GLES: Added IQM bone support.
2022-11-13 21:19:54 +01:00
Christoph Oelckers
1047b766df
- added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values.
...
These just mirror features of the internal vector classes.
2022-11-13 08:07:20 +01:00
Christoph Oelckers
f3b33f7cf8
- added LengthSquared and Angle intrinsics for all vector types, also allow calling VectorAngle with a full vector as a single parameter.
2022-11-13 08:07:12 +01:00
Christoph Oelckers
54f1cabed9
- backend update from Raze.
...
Progdir stuff for POSIX.
2022-11-13 07:44:36 +01:00
RaveYard
31db5847cc
Finish Vector4 implementation
2022-11-12 09:04:38 +01:00
Shiny Metagross
a525233914
Attempted to add Vector4 to ZScript
2022-11-12 09:04:38 +01:00
Christoph Oelckers
dab61709f8
- added a compile option to fully disable the software renderer.
...
This is mainly for new games which have been designed for hardware rendering.
Note that this does not remove the software renderer's code - all it does is to disable the vid_rendermode CVAR by turning it into a static constant with the value 4.
2022-11-08 11:24:35 +01:00
Christoph Oelckers
d422737a7e
- fixed statistics code to do proper checks for OpenGL's capabilities.
2022-11-06 23:29:29 +01:00
Marisa Heit
f34d4d2033
Fix compilation on Linux
2022-11-06 12:50:51 -06:00
Marisa Heit
7f899bd412
GC fixes/improvements
...
- Have a real finalizer stage for destroying objects instead of mixing them
in to the sweep stage.
- Base GC rate on a running average of the allocation rate instead of basing
it on the amount of time taken since the last sweep started.
- More GC stats for better tweaking.
2022-11-06 19:39:00 +01:00
Christoph Oelckers
5ea57a6c64
- when converting to a portable install, flag the current session accordingly.
2022-11-06 10:59:33 +01:00
Christoph Oelckers
c2f64b3a90
- removed one more redundant include.
2022-11-06 10:43:58 +01:00
Christoph Oelckers
8cc3099bd0
- movrf DBoneComponents into the backend as this needs to be shared.
2022-11-06 10:41:16 +01:00
Christoph Oelckers
0e111ae151
- changed CalculateBones to receive the bone component data directly instead of the owning actor.
...
Since the backend also gets used by Raze it may not access Doom game data.
2022-11-06 10:27:17 +01:00
Christoph Oelckers
3e405c5215
- fixed quaternion multiply-assign operator.
...
This must go through a temporary because otherwise it'd overwrite its own factors.
2022-11-06 08:49:26 +01:00
Christoph Oelckers
c55dfbcddd
- Backend update from Raze.
2022-11-06 08:49:25 +01:00
Shiny Metagross
9063bc8ef6
IQM 4.9 Last patch
...
- Improved performance of YZ axis swap matrix calculations by calculating them with the initial matrix calculations.
- IQMs with no bones will no longer crash
2022-11-05 19:22:19 +01:00
Christoph Oelckers
303e751a81
- fixed definition of "msg" CVAR.
2022-11-05 18:26:54 +01:00
Christoph Oelckers
4e72281fc6
- Better messages on migration requester.
2022-11-05 13:31:22 +01:00
Christoph Oelckers
ff37d710e2
- overhaul of savegame path management.
...
* use a different subfolder for each IWAD's saves.
* do not allow load and save CCMDs to escape the save folder. Absolute paths and '..' are being blocked now.
* unified savegame path and filename generation in one single function. All ad-hoc file name generation was replaced.
* -loadgame will also use the designated savegame folder now.
2022-11-05 13:28:31 +01:00
Christoph Oelckers
33afe45dda
- changed Windows config and game data storage to prefer known folders over the program directory.
...
This matches modern software design standards, if a portable install is desired a config named "gzdoom_portable.ini" needs to be created in the program directory.
This may be an empty file for a first launch.
2022-11-05 13:28:31 +01:00
Christoph Oelckers
72aa6fe3b8
- did some cleanup on p_mobj.cpp
...
* deleting some unused code
* turned several class methods into static local functions in cases where they never were used outside this file.
* inlined the dangerous assignment operator in the only place where it was used.
2022-11-05 12:00:43 +01:00
Christoph Oelckers
9c75a38ec3
- added [[noreturn]] to several functions that always throw exceptions.
2022-11-05 09:09:00 +01:00
Shiny Metagross
f7c3615d3b
IQM Refactor Milestone
...
- Removed bone manipulation code
- Implemented an index in calculateBones to optimize multi-armature actors
- Moved the bone storage object's creation to RenderModels so that the armature array can be sized there
2022-10-31 11:34:55 +01:00
Shiny Metagross
7092971331
Bone manipulation updates
...
- Factored in parent bone rotations to check if a bone needs updating
- Implemented multiply Quaternion functions to TVector4
- Converted Euler rotations in A_ManipulateBone to degrees
2022-10-31 11:34:55 +01:00
Shiny Metagross
28444d4cfd
Bone manipulation start
...
- Bone manipulation is largely finished, but I need to figure out how to multiply quaternions
2022-10-31 11:34:55 +01:00
Shiny Metagross
317e163fcf
Update models_iqm.cpp
...
- Swapped YZ axis of IQM models
- Cleaned up some leftovers
- Now just prints a benign error message if a model has no joint data
2022-10-31 11:34:55 +01:00
Shiny Metagross
3f3cc5bbc3
IQM Refactor start
...
- Refactored IQM and calculateBones to process TRS at runtime which resolves some of the faulty animations with large rotations. Will also make bone manipulations much easier to do
2022-10-31 11:34:55 +01:00
Magnus Norddahl
181eda0a83
Fix canvas textures getting clipped by wrong scissor box
2022-10-28 18:01:59 -04:00
Magnus Norddahl
1a1adc5c29
Fix vulkan backend clearing the canvas textures to undefined contents
2022-10-28 14:53:05 -04:00
Christoph Oelckers
7e0084f56b
- Backend update from Raze.
2022-10-25 07:02:45 +02:00
Christoph Oelckers
2b805e196d
- do two-step init of CVARs to ensure that flag and mask vars always find their master CVar.
2022-10-24 19:27:04 +02:00
alexey.lysiuk
da33b0f9c3
- removed obsolete defaults from Cocoa backend
...
This legacy code from the time of exclusive fullscreen mode began to crash after changes in console variables handling
2022-10-24 09:57:36 +03:00
Christoph Oelckers
671b8696bb
- made CVar declarations type safe again.
2022-10-22 09:29:38 +02:00
Christoph Oelckers
453688ccc6
- reworked CVARs to not use a linked list and to be initialized manually.
...
This solves two problems:
* The linked list is too slow, a map is better. A map cannot be used with statically allocated CVARs because order of initialization is undefined.
* The current CVAR system is an unordered mishmash of static variables and dynamically allocated ones and the means of identification are unsafe. With this everything is allocated on the heap so it can all be handled the same by the cleanup code.
2022-10-21 18:56:43 +02:00
Christoph Oelckers
ef887403cf
- marked a few Printf calls in critical error paths as PRINT_NONOTIFY.
2022-10-20 23:55:29 +02:00
Christoph Oelckers
07f08de474
- fixed some warnings.
2022-10-20 22:22:30 +02:00
Christoph Oelckers
5a52f61096
- fixed: R_LoadVoxelDef did not fully initialize the voxel descriptor it creates.
2022-10-20 20:23:35 +02:00
Christoph Oelckers
70df444660
- Backend update from Raze
...
* fix for serializing vector arrays.
* a few adjustments for asan on Windows.
* NOMUSICCUTOFF flag for movie player.
* a bit of cleanup.
2022-10-20 20:12:06 +02:00
Christoph Oelckers
ca8897028f
- stupid typo...
2022-10-20 19:06:07 +02:00
Christoph Oelckers
ba8a334862
- removed two bogus asserts from the script compiler.
2022-10-20 18:39:51 +02:00
Christoph Oelckers
1855edba37
- don't crash on null pointers in V_GetFont.
2022-10-20 18:18:22 +02:00
Christoph Oelckers
6ba4295136
- don't crash when destroying incomplete textures.
...
This can happen during TEXTURES parsing in case of an error.
2022-10-20 17:12:43 +02:00
Christoph Oelckers
936e89e3d4
- fixed F2DDrawer::SetClipRect.
2022-10-20 17:12:43 +02:00
Shiny Metagross
7972afc350
Revert "Before moving boneSelector from unsigned complete"
...
This reverts commit 8f2b8fa878
.
2022-10-19 22:48:57 +02:00
Shiny Metagross
ee7c467a17
Before moving boneSelector from unsigned complete
...
- boneSelector being unsigned might be the reason why gles is having a hard time. Just stashing this commit here as a bookmark in case I need it
2022-10-19 22:48:57 +02:00
Shiny Metagross
13edabac19
Fixed crash on Intel cards with less than 64 uniform block align
...
- This should fix the crash with Intel cards. Sprite blinking appears to not occur either
2022-10-19 22:48:57 +02:00
Shiny Metagross
a8bab6a21d
Intel fix
...
- GZDoom can launch for Intel users - IQMs work for Intel too
2022-10-19 22:48:57 +02:00
Shiny Metagross
be9a671217
Update models_iqm.cpp
...
- Fixed an issue with IQMs exported from blender that caused some issues in the blend weights
2022-10-19 22:48:57 +02:00
Shiny Metagross
b7c1c53eb0
Almost done with To-Dos
...
- The compile errors should be fixed
- Implemented a way for skeletal models using the MODELSAREATTACHMENTS flag to not upload duplicate bones to the bone buffer
2022-10-19 22:48:57 +02:00
Shiny Metagross
3f8141ed04
I'm not done with this
...
- I need to figure out how I'm gonna reference the same boneStartIndex between the indices. Maybe some property in smf? The problem is that even though the bone calculations are done just once per instance of the actor when the flag is enabled, the bone buffers are being copied still, and if there's too much data, some will quit uploading because it's full. Besides doing this, I may just see about increasing the buffer size if possible. It's really just not very big.
2022-10-19 22:48:57 +02:00
Shiny Metagross
3c9a1ffe5e
Give a fatal error when no mesh data is loaded
...
- Part of having mesh data in an IQM includes joints. If a model doesn't have any mesh data to it, it won't have joints, and those are necessary. Poses are a different story however.
2022-10-19 22:48:57 +02:00
Shiny Metagross
5670e6f54c
Some of the to-dos
...
- Implemented Animation parameters for A_ChangeModel
- Made a modeldef flag to treat additional model indices as just attachments, meaning they will use armature data from index 0
- Fixed an issue with A_ChangeModel where generated indices lower than smf frame amounts could not actually generate anything
2022-10-19 22:48:57 +02:00
Shiny Metagross
e9e919b54c
Changes before To-Dos
...
- Removed redundant AttachAnimationData functions from derived model classes
- Fixed indentation in IQM loader
- Fixed a merging issue in the MD3 FindFrame
- Fixed a formatting issue in FindFrame in Model.h?
2022-10-19 22:48:57 +02:00
Shiny Metagross
08f520f1c6
IQM Support Implemented
...
More info to come
2022-10-19 22:48:57 +02:00
Christoph Oelckers
dbd6a9dea1
- fixed DrawLine commands by giving them a consistent floating point interface.
2022-10-19 20:39:41 +02:00
Christoph Oelckers
57add9a45c
- fixed some warnings and updated vectors.h
2022-10-15 12:10:01 +02:00
Christoph Oelckers
1241b277f3
- fixed direct native interface for Draw(Thick)Line.
2022-10-15 09:10:49 +02:00
Christoph Oelckers
c0c9f8e15c
- Backend update from Raze.
2022-10-14 20:11:05 +02:00
Chris Robinson
9aee7415eb
Sync movie video playback to the audio, when possible
2022-10-14 07:10:06 +02:00
Christoph Oelckers
f34ba48e3e
- constant update.
2022-10-12 19:30:16 +02:00
Magnus Norddahl
37039721bd
Fix washed out colors in Vulkan HDR mode
2022-10-11 00:10:02 +02:00
Chris Robinson
d2f8c57136
Make frame timing consistent between movie players
2022-10-10 08:33:23 +02:00
Chris Robinson
bf2e7c210d
Use a MovieAudioTrack for synchronized audio with MvePlayer
2022-10-10 08:33:23 +02:00
Chris Robinson
573784b37f
Handle the SoundStream in MvePlayer instead of InterplayDecoder
2022-10-10 08:33:23 +02:00
Chris Robinson
bf933b3904
Decode audio and video separately in InterplayDecoder
2022-10-10 08:33:23 +02:00
Chris Robinson
fa2cea3e5b
Read whole chunks at a time from Interplay MVE files
2022-10-10 08:33:23 +02:00
Chris Robinson
80bf62cb3c
Start the VPX audio track on the first frame
...
MoviePlayer::Start is called about a second (potentially) before
MoviePlayer::Frame starts getting called to actually play the video, causing
the audio to start early and require significant synchronization adjustment.
This isn't ideal to constantly check if the audio track needs to play in
MoviePlayer::Frame, but it's better than starting prematurely.
2022-10-10 08:33:23 +02:00
Chris Robinson
5e465a65e2
Make a common class to help with movie audio streams
2022-10-10 08:33:23 +02:00
Chris Robinson
d11e2ef1ac
Always output 16-bit samples from SmackerDecoder
2022-10-10 08:33:23 +02:00
Chris Robinson
3b6723e6f2
Better report the number of Smacker audio tracks
2022-10-10 08:33:23 +02:00
Chris Robinson
1a692f5c28
Synchronize Smacker movie audio tracks
2022-10-10 08:33:23 +02:00
Chris Robinson
5d00b96e5f
Read Smacker video and audio data separately
2022-10-10 08:33:23 +02:00
Chris Robinson
19a4eb79aa
Read in full packets at a time from smacker files
2022-10-10 08:33:23 +02:00
Chris Robinson
7401e02a14
Include the source latency for movie audio synchronization
2022-10-10 08:33:23 +02:00
Chris Robinson
23fff7791e
Update and use OpenAL Soft's extension headers
2022-10-10 08:33:23 +02:00
Chris Robinson
c825ff3543
Use a more reasonable buffer size for the movie audio stream
2022-10-10 08:33:23 +02:00
Chris Robinson
a2f0c1aee6
Update the audio offset when skipping a full update
2022-10-10 08:33:23 +02:00
Chris Robinson
1a233b08c3
Synchronize the VPX "soundtrack" with the frame clock
2022-10-10 08:33:23 +02:00
Chris Robinson
78f40fe99c
Add a method to retrieve the play position of a SoundStream
2022-10-10 08:33:23 +02:00
Chris Robinson
c808aad595
Play the VPX "soundtrack" as a SoundStream
2022-10-10 08:33:23 +02:00
Christoph Oelckers
94b249172a
- normalize the timer with the app start, not the epoch.
...
This ensures smaller values and less wraparounds with integer values in scripts.
2022-10-09 14:52:08 +02:00
Christoph Oelckers
b225a910a0
- Backend update from Raze
2022-10-09 13:44:43 +02:00
Kevin Caccamo
83373d117d
Fix compilation on POSIX (Linux/macOS) systems
2022-10-02 22:04:40 +02:00
Christoph Oelckers
2c29a93f1f
- fixed compile.
2022-10-02 20:45:00 +02:00
Christoph Oelckers
519005ff4d
- snd_reset cannot be shared.
2022-10-02 20:22:23 +02:00
Christoph Oelckers
00bb258d58
- moved some stuff from wipe.h to wipe.cpp.
2022-10-02 19:26:23 +02:00
Christoph Oelckers
207913bced
- added a config getter to the interface.
...
Now the only external reference left in the backend code is the call to GameMain.
2022-10-02 18:42:08 +02:00
Christoph Oelckers
e6615629b3
- move two more backend->frontend calls to the interface
2022-10-02 18:29:57 +02:00
Christoph Oelckers
b19b0db150
- moved language CVAR to backend.
2022-10-02 17:59:39 +02:00
Christoph Oelckers
73142ef2cf
- handle menu customization via callbacks.
2022-10-02 17:49:39 +02:00
Christoph Oelckers
a084667bed
- move hud scale CVARs to the backend.
2022-10-02 17:33:49 +02:00
Christoph Oelckers
9076145319
- handle autoload flags in startup through function parameters instead of directly accessing the CVARs.
2022-10-02 17:12:34 +02:00
Christoph Oelckers
f63d4d8a12
- handle Build tiles via explicit callback to the init function.
2022-10-02 16:54:43 +02:00
Christoph Oelckers
8aaab153fa
- add a system interface for CheckCheatmode and moved some sound code to the backend.
2022-10-02 16:48:56 +02:00
Christoph Oelckers
75afc69306
- moved IWAD CVARs to backend.
2022-10-02 14:42:26 +02:00
Christoph Oelckers
c596095fe0
- minor cleanup.
2022-10-02 14:36:49 +02:00
Christoph Oelckers
8e6bdd72fa
- moved UpdateVRModes, AppActive and gamestate into the backend.
2022-10-02 14:28:40 +02:00
Christoph Oelckers
65f6e788eb
- moved gitinfo.h into the backend
2022-10-02 14:20:15 +02:00
Christoph Oelckers
307ff4e163
- pass filename to I_WriteIniFailed as parameter.
...
This accessed game data from the backend.
2022-10-02 14:08:07 +02:00
Christoph Oelckers
34f30ee70b
- remove gi.h includes in backend code.
2022-10-02 14:04:24 +02:00
Christoph Oelckers
01f8131969
- moved chatmodeon to the backend.
2022-10-02 14:01:43 +02:00
Christoph Oelckers
12adee5256
- fixed a few includes
2022-10-02 13:57:36 +02:00
Player701
78360c1888
- Exported GetDisplayTopOffset for font characters to ZScript
2022-09-30 10:07:41 +02:00
Alison Watson
18a67cfdb2
use constexpr constructor for PARAM_COLOR_AT
2022-09-16 20:50:33 +02:00
Alison Watson
c6d6322494
use PalEntry instead of int for ParseDrawTextureTags
2022-09-16 20:50:33 +02:00
Alison Watson
fb32ff45dd
fix Screen.DrawShapeFill not properly setting renderstyle
2022-09-16 20:50:33 +02:00
Chronos Ouroboros
12995b84c7
- fixed FDynArray_Obj not performing write barriers properly.
2022-09-16 20:45:39 +02:00
Christoph Oelckers
c87e87365d
- fixed: all script methods adding an object to a dynamic array must perform a write barrier.
2022-09-08 13:30:00 +02:00
Christoph Oelckers
175c91308a
- move BobSin to game side.
2022-09-04 09:01:57 +02:00
Christoph Oelckers
8cba80a2cd
Revert "- fixed allocation size when constructing a string from a file system entry."
...
This reverts commit 513d8cea8d
.
This change broke voxel loading and possibly other things as well
2022-09-04 08:58:45 +02:00
Emile Belanger
ba83879e99
GLES2: Fix anistropic filtering
2022-08-30 18:33:52 -04:00
Christoph Oelckers
c7e425f759
- make TAngle::Degrees() constexpr.
2022-08-26 18:32:23 +02:00
Christoph Oelckers
7ad09c7a77
- fixed sky cap color handling
...
Backported from Raze
2022-08-26 18:17:02 +02:00
Christoph Oelckers
ed5287ef23
- added Q16 and Build angle converters to TAngle
...
To have full coverage. Q16 is what ACS uses and Build angles are needed in Raze.
2022-08-26 18:09:39 +02:00
Christoph Oelckers
4032576519
- blocked off direct access to TAngle’s internal storage.
2022-08-26 18:09:29 +02:00
Christoph Oelckers
3d2578820b
- block direct comparisons of TAngle with floats
2022-08-26 18:01:52 +02:00
Christoph Oelckers
f0fbdba593
- disable implicit conversions from float to TAngle
2022-08-26 18:01:26 +02:00
Marisa the Magician
8c0ad50db3
UE1 models now handle frame index -1 properly.
2022-08-24 19:56:07 +02:00
Rachael Alexanderson
0eae1b9be2
- change the Linux/BSD version of system
call to std::system
2022-08-18 00:42:27 -04:00
Christoph Oelckers
03c725c0da
- use NSFileManager on macOS to handle the current directory.
2022-08-17 23:43:56 +02:00
Christoph Oelckers
532a493752
- get_current_dir_name apparently does not exist on macOS
2022-08-17 22:57:30 +02:00
Christoph Oelckers
7f3c09c918
- use get_current_dir_name for I_GetCWD on POSIX.
2022-08-17 22:51:39 +02:00
Rachael Alexanderson
e261132db0
- use char* get_current_dir_name() in Mac/Linux to save the cwd in the shell open function
2022-08-17 16:32:09 -04:00
Christoph Oelckers
513d8cea8d
- fixed allocation size when constructing a string from a file system entry.
...
The internal allocator already added space for the terminazing \0, so the string's size was one character too large.
2022-08-17 21:10:15 +02:00
Christoph Oelckers
8d3c1adf05
- do not use POSIX directory functions in common code.
...
For Windows these need to redirect to Unicode system functions to properly handle paths not representable in 8 bit encodings.
2022-08-17 10:02:25 +02:00
Christoph Oelckers
c5f4967871
- cleanup of Windows's I_OpenShell* functions
...
* do not use deprecated library features (wstring_convert was deorecated in C++17) - instead use the existing WideString utility.
* do proper calculation of the current directory's path length.
* remove the mostly redundant I_OpenShellFile function and instead use ExtractFilePath to get the config's path.
2022-08-17 00:31:22 +02:00
Rachael Alexanderson
64824430fa
- make shell folder functions unicode aware
2022-08-16 22:10:09 -04:00
Rachael Alexanderson
ee132372d8
- patch for this note: 03d76027cf (commitcomment-81265953)
2022-08-15 21:35:36 -04:00
Rachael Alexanderson
a9cadd345d
- change the way posix folders are opened - fixes issue #1707
2022-08-14 18:38:20 -04:00
Rachael Alexanderson
03d76027cf
- fix issue #1708 - respect user preferences when specifying custom save/config/screenshot paths
2022-08-14 15:03:20 -04:00
Rachael Alexanderson
dd07f6513f
- encapsulate folder/file names in quotes on Windows too
2022-08-14 10:38:15 -04:00
Rachael Alexanderson
259a8e0f74
- fixed: encapsulate folders for shell commands in quotes for Linux/Mac
2022-08-12 23:20:30 -04:00
Christoph Oelckers
c89ae6358e
- Backend update from Raze, mostly maintenance changes without new functionality.
2022-08-11 22:51:19 +02:00
Rachael Alexanderson
04a6fa321b
- use FString instead of std::string in the Windows shell functions
2022-08-10 18:13:49 -04:00
Rachael Alexanderson
f2df781b76
- add menu entries
2022-08-10 13:10:13 -04:00
Rachael Alexanderson
82d0376520
- add openscreenshots
opensaves
and openconfig
console commands on Windows and Linux and Mac
2022-08-10 13:00:33 -04:00
Christoph Oelckers
4710a40fb5
- reapply PR 1512 which was accidentally deleted
2022-08-09 10:48:00 +02:00
Christoph Oelckers
735c2a9545
- pass clip rect as pointer to F2DDrawer::AddLine.
2022-08-05 21:13:47 +02:00
Marisa the Magician
931211b9db
Export FindLumpFullName to ZScript.
2022-08-05 20:25:02 +02:00
Marisa Heit
4c6d0e4209
Better error message for unknown nested types
2022-08-04 07:42:46 +02:00
Marisa Heit
66460bfeb8
Add support for nested user types
...
The grammar already understood these constructs. Now the compiler does too.
2022-08-04 07:42:46 +02:00
Christoph Oelckers
ef0e9c025e
- fixed comparison checks.
2022-08-03 10:58:37 +02:00
Christoph Oelckers
3563c99ead
- made adjustments for proper int type promotion to allow internal ZScript to compile with it on.
...
* Emit a warning when relational comparisons are made between signed and unsigned ints.
* Handle shift operators so that they do not fail for constant definitions.
* changed return type of Array::Size() to signed int as most code out there is using it this way and would otherwise drown in warnings.
* fixed a few deprecation warnings.
2022-08-03 10:26:29 +02:00
Christoph Oelckers
388a5cb481
- ZScript: fixed integer type promotion for shift operator
...
* the first operand must never be sign-changed.
* the second operand should always be made unsigned. Shift by negative values is undefined and may produce undefined behavior on some systems.
2022-08-03 09:03:03 +02:00
Christoph Oelckers
8eabaf61c9
- version-restrict int to uint promotion.
...
Some mods depend on this not happening.
2022-08-03 08:45:37 +02:00
Christoph Oelckers
5cee2b5803
- fixed: The compile context for constant evaluation did not initialize its Version member.
2022-08-03 08:44:38 +02:00
Marisa Heit
f7f9746a0f
Don't throw away unsignedness when passing unsigned constants to the codegen
2022-08-02 07:48:21 +02:00
Marisa Heit
7ce29fe855
Add signed->unsigned promotion for binary operators
...
The C-style rules for integer promotion are that when you have a signed int and an unsigned int, if you can't promote to a wider type, then the signed type is promoted to an unsigned type.
2022-08-02 07:48:21 +02:00
Christoph Oelckers
15c5728f01
- fixes and improvements for survey code.
...
Check for Windows on ARM and do proper checks for GLES.
32 bit checks are still retained to catch non-official builds that disable the compile check.
2022-07-31 17:49:21 +02:00
Christoph Oelckers
4422f9079c
- fix menu commands with semicolon separated commands
...
C_DoCommand only executes one command, to do full processing AddCommandString is needed.
2022-07-29 08:38:34 +02:00
Marisa Heit
b9501a7291
Fix definition order of ZScript structs
...
Do a first pass over the Structs array in CompileAllFields() to reorder them such that if a struct uses other structs, those structs will be resolved first.
2022-07-29 08:17:33 +02:00
Magnus Norddahl
742ae8c907
Fix viewpoint buffer not getting cleared when in the menus
2022-07-28 13:52:09 +02:00
Christoph Oelckers
aae85a1b91
- backported KDE detection from Raze.
2022-07-28 10:52:26 +02:00
Christoph Oelckers
93e934c8d0
- removed the Softpoly backend.
...
Its only relevant use case has been to use the software renderer on hardware not capable of OpenGL 3.3, but a large chunk of that can now be serviced with GLES.
In addition it has ceased further development and has not received any of the recent 2D render features which further reduces its viability.
2022-07-28 10:31:56 +02:00
Marisa the Magician
9eb8d65cb1
Fix another incorrect mapping of texture indices for UE1 models.
2022-07-27 10:21:29 +02:00
Magnus Norddahl
e2778ba442
Move TexMan.GetCanvas and GetTextureCanvas to common
2022-07-25 18:50:16 +02:00
Magnus Norddahl
753822359e
Add support for multiple 2d drawer viewpoints in the same frame
2022-07-25 18:50:16 +02:00
Magnus Norddahl
6c3fd3cc4d
Fix softpoly null pointer crash
2022-07-25 18:50:16 +02:00
Magnus Norddahl
fe3751a502
Fix renderdoc error message about not all textures getting bound
2022-07-25 18:50:16 +02:00
Magnus Norddahl
b8569fa29f
Fix GC shutdown crash due to canvas objects not getting GC'ed at the end
...
Fix typo in Draw2D and add support for specifying the viewport size directly
2022-07-25 18:50:16 +02:00
Magnus Norddahl
6137ea12d1
Fix typo
2022-07-25 18:50:16 +02:00
Magnus Norddahl
bb503950df
Add canvastexture definition to animdefs.
...
Split canvas texture rendering from camera texture rendering.
2022-07-25 18:50:16 +02:00
Magnus Norddahl
aa083604e1
Fix variable arg bindings
...
Always clear the drawer
2022-07-25 18:50:16 +02:00
Magnus Norddahl
0049fea8d6
Add missing DrawText binding
2022-07-25 18:50:16 +02:00
Magnus Norddahl
4f0b02b396
Add a 2d drawer to canvas textures
2022-07-25 18:50:16 +02:00
Marisa the Magician
cd20d707d4
Fix incorrect mapping of texture indices for UE1 models.
2022-07-25 13:52:46 +02:00
nashmuhandes
351a4c9a5a
Added PitchFromMomentum, UseActorPitch and UseActorRoll to VOXELDEF. Behaves exactly like their 3D model counterparts. Hardware renderer only.
2022-07-25 08:06:44 +02:00
Ricardo LuÃs Vaz Silva
12660b0015
Add special case for relative includes from top-level files
2022-07-24 09:05:16 +02:00
Christoph Oelckers
9875850c19
- got rid of the state variables in the model class entirely.
...
This is *not* the right way to reduce function parameter count. The data in question is far easier evaluated at the calling site and passed as a parameter.
2022-07-23 10:35:01 +02:00
Christoph Oelckers
76c8214d67
- fixed destructive logic and memory allocation issues in RenderFrameModels.
...
This completely avoids modification of the model data, instead using local variables.
2022-07-23 10:10:15 +02:00
Shiny Metagross
69ee1eb0a2
Surfaceskin modification
...
- Made it so when rendering a model, it clones an smf to use so that data isn't overwritten
- Reimplemented the skin index property. This changes the behavior of this index if CMDL_USESURFACESKIN is activated
2022-07-22 17:11:59 +02:00
Shiny Metagross
6d00e4a3f3
Finished serializing
...
- Implemented an FString TArray which goes into save files that saves a model file and path, and when the game is loaded, spits back out the model to be Loaded when loading a save file
2022-07-22 17:11:59 +02:00
Christoph Oelckers
d2454d4b3b
- DirectInput cleanup
...
Removing ancient code that's only useful on pre-XP OSs.
2022-07-20 14:41:06 +02:00
Christoph Oelckers
6d635ce715
- optimized storage for animation definitions.
...
Instead of allocating everything on the heap as single blocks, use a value TArray and allocate the frame arrays from the texture manager's memory arena, since lifetime of the data is identical.
Most importantly this avoids using a variable size array at the end of the struct.
2022-07-17 10:15:09 +02:00
Magnus Norddahl
89f5428a9a
Fixes vulkan crash when multisampling is enabled
2022-07-16 17:51:44 +02:00
Christoph Oelckers
e4485b01f8
- removed redundant extern declarations from platform code.
2022-07-16 15:12:06 +02:00
Gutawer
937c22ff14
- add a method for filling a shape2d instead of using a texture ( #1661 )
...
Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
2022-07-16 14:57:22 +02:00
Gutawer
ee0d90a983
- add stencil buffer support for 2d drawing ( #1660 )
...
Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
2022-07-16 14:56:28 +02:00
Gutawer
1e27fac288
- add a system for setting all of 2D drawing's transform, not just shapes
2022-07-16 14:53:07 +02:00
nashmuhandes
c6ae73d6d2
- Expose ConsoleState to scripts
...
- Make ConsoleState uint8_t sized
2022-07-16 14:38:47 +02:00
Magnus Norddahl
69778667aa
Minor cleanup of some vulkan rtx code
2022-07-16 08:55:57 +02:00
Christoph Oelckers
0e90098de8
- rewrote Windows console code for Windows 10's new terminal.
...
This allows dumping a lot of shit code using deprecated Windows functionality and bringing the code in line with Microsoft's roadmap for terminal/console functionality.
Note that this will cause garbled output of non-ASCII characters on Windows 7 and 8.1, but proper handling on these declining systems is of far lesser importance than future-proofing the feature.
2022-07-15 13:04:02 +02:00
Christoph Oelckers
595975fcc7
- did a test compile as C++20 and fixed all warnings that got emitted.
2022-07-15 09:17:50 +02:00
Ricardo LuÃs Vaz Silva
365131e1e3
rename PrintString to PrintfEx and make it a vararg function
2022-07-11 19:35:51 +02:00
Ricardo LuÃs Vaz Silva
03c8da8a44
Expose Print Flags to ZScript
2022-07-11 19:35:51 +02:00
Christoph Oelckers
7847a55d67
- do not include game specific stuff in the backend.
2022-07-02 10:26:17 +02:00
Christoph Oelckers
9002cdb61d
- fixed bad use of local variable.
2022-07-02 10:24:51 +02:00
Christoph Oelckers
35f8aab6bf
- fixed names for A_PlaySoundEx
...
These need to be contiguous because the implementation depends on it.
2022-06-30 21:45:59 +02:00
RaveYard
9a083d2d13
Fix FVector to Vector comparison
2022-06-24 21:38:14 +02:00
alexey.lysiuk
59458cf463
- fixed compilation without JIT
...
src/common/scripting/vm/vmframe.cpp:674:16: error: call to 'JitCaptureStackTrace' is ambiguous
2022-06-23 13:26:36 +03:00
RaveYard
4c588077c2
Fix FVector incompatible operands errors
2022-06-23 10:54:31 +02:00
Christoph Oelckers
2d10ad9d2d
- removed incorrect assert.
...
This may fail if a narrow data type is negated.
2022-06-23 10:43:43 +02:00
Christoph Oelckers
124d71a7be
- let the "abort" button on the network pane of the startup screen do a hard exit on Windows.
...
This merely posted a quit message which did not get properly processed and let the game run into other code with incompletely set up data.
2022-06-23 09:35:45 +02:00
Christoph Oelckers
8c244f6f85
- use static_assert to make 32 bit builds fail.
2022-06-22 11:11:29 +02:00
Christoph Oelckers
e3d7afa2d5
- added missing return
2022-06-22 09:26:53 +02:00
Magnus Norddahl
a0259e8e00
Hide experimental ray query behind vk_raytrace
2022-06-22 07:55:19 +02:00
Magnus Norddahl
ed134c9b19
Improve the builder syntax so that fewer temp variables are required to build vulkan objects
2022-06-22 07:55:19 +02:00
Magnus Norddahl
7fc579c8b2
Add some helpers
2022-06-22 07:55:19 +02:00
Magnus Norddahl
c7fe3de4b0
Avoid creating new descriptor pools every frame
2022-06-22 07:55:19 +02:00
Magnus Norddahl
5aa0fb536f
Only define SUPPORTS_RAYTRACING if it was detected
2022-06-22 07:55:19 +02:00
Magnus Norddahl
e0907f62d5
Use a black lightmap texture rather than an undefined one (NV and AMD differ on the contents of undefined textures)
2022-06-22 07:55:19 +02:00
Magnus Norddahl
f1775ee64b
Fix null pointer crash if shader fails to compile during startup
2022-06-22 07:55:19 +02:00
Magnus Norddahl
5446e37874
Add debug names to some buffers
2022-06-22 07:55:19 +02:00
Magnus Norddahl
5cc21c5a4a
Upgrade glslang to 11.10.0
2022-06-22 07:55:19 +02:00
Magnus Norddahl
32d059e432
Tell the debug layer what the name of the shader is
...
Always bind both buffer descriptor sets
2022-06-22 07:55:19 +02:00
Magnus Norddahl
821bd3b460
Adjust some init/deinit code and rename some things
2022-06-22 07:55:19 +02:00
Magnus Norddahl
4644221454
Make sure everything has finished rendering or uploading before changing the render buffers
2022-06-22 07:55:19 +02:00
Magnus Norddahl
24bf0c685c
Remove GetVulkanFrameBuffer() so nobody is tempted to call it in the future
2022-06-22 07:55:19 +02:00
Magnus Norddahl
1c4798f059
Move lightmap and shadowmap textures to VkTextureManager
2022-06-22 07:55:19 +02:00