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
Christoph Oelckers
7f9df12431
- Survey: return more meaningful info for current OS and Vulkan version.
2023-09-20 20:03:07 +02:00
Magnus Norddahl
45a2cbe081
Update zvulkan to latest version
2023-09-16 00:32:15 -04:00
Christoph Oelckers
e7a79b0d44
- string conversion fixes
2023-09-06 00:19:36 +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
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
2c2bf0265f
- refactored all places which treated FileData as zero terminated.
2023-08-22 22:54:53 +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
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
def6bffdfc
- use std::vector for the MemoryArrayReader
2023-08-22 21:49:55 +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
Cacodemon345
fe7beaaf17
Add support for HDR canvas textures
...
Vulkan only.
2023-08-12 06:46:05 -04: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
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
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
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
Christoph Oelckers
7537f415ce
- update comment on SSBOs.
2023-03-26 10:43:27 +02:00
Christoph Oelckers
47b76180d6
- fixed several warnings emitted by Clang.
2023-03-26 08:48:54 +02: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
Emile Belanger
c41b07531a
Fixing GLES mode to work on real GLES hardware and OpenGL 2 again
2023-02-10 13:44:11 -05:00
Emile Belanger
c8bd2deb1e
GLES: Fix first wipe
2023-01-29 20:03:05 +01: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
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
bafd6be342
- removed backend dependencies on game data.
2023-01-15 08:23:26 +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
Magnus Norddahl
7b864fd665
Add vulkan pipeline cache
2022-12-19 17:40:27 +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
Magnus Norddahl
6a005e3a2a
Switch vulkan backend to use the zvulkan library
2022-12-05 07:49:43 +01:00
Emile Belanger
f41f393e91
GLES: Added IQM bone support.
2022-11-13 21:19:54 +01:00
Christoph Oelckers
d422737a7e
- fixed statistics code to do proper checks for OpenGL's capabilities.
2022-11-06 23:29:29 +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
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
Shiny Metagross
7972afc350
Revert "Before moving boneSelector from unsigned complete"
...
This reverts commit 8f2b8fa8789a5d4aff3890334e2f7368efa99572.
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
08f520f1c6
IQM Support Implemented
...
More info to come
2022-10-19 22:48:57 +02:00
Magnus Norddahl
37039721bd
Fix washed out colors in Vulkan HDR mode
2022-10-11 00:10:02 +02:00
Christoph Oelckers
b225a910a0
- Backend update from Raze
2022-10-09 13:44:43 +02:00
Christoph Oelckers
8e6bdd72fa
- moved UpdateVRModes, AppActive and gamestate into the backend.
2022-10-02 14:28:40 +02:00
Emile Belanger
ba83879e99
GLES2: Fix anistropic filtering
2022-08-30 18:33:52 -04:00