Christoph Oelckers
5b793958f9
fix uniform buffer size check
2024-02-04 23:06:02 +01:00
Christoph Oelckers
f1db369883
moved a few things out of the common code that should be defined privately.
2024-02-04 13:54:25 +01:00
Christoph Oelckers
d0a2713820
limit uniform blocks to 64kb.
...
The GL uniform code is not capable of dealing with large blocks, so restrict it to what most drivers report as their maximum.
2024-02-04 13:36:25 +01:00
Dileep V. Reddy
25f1407228
Cleaning up implementation of isometric camera with optional orthographic projection.
...
All CVars, mapinfo variables, and playerinfo/playerpawn variables are gone.
A Camera actor named 'SpectatorCamera' is defined in warsrc/static/zscript/actors/shared/camera.zs
The following new flag bits were defined in the 'DViewPosition' struct for use with actor->ViewPos in src/playsim/actor.h:
VPSF_ALLOWOUTOFBOUNDS = 1 << 3, // Allow viewpoint to go out of bounds (hardware renderer only).
VPSF_ORTHOGRAPHIC = 1 << 4, // Use orthographic projection.
VPSF_ISOMETRICSPRITES = 1 << 5, // Displace sprites towards camera and don't billboard (drawn from isometric perspective).
Basically, spawn a SpectatorCamera actor with the appropriate flags and set it to player.camera.
See example template: https://www.mediafire.com/file/fv8rytayjt9l6g1/isometric_actor_wads.zip/file
Has been tested with multiplayer death and disconnection (and respawns). Not tested with portals.
Still only works with hardware renderer (mostly). But should be compatible with older mods and libraries.
2024-02-01 08:43:34 -05:00
dpjudas
9ff1193dab
Update backend to use ColorBlendAttachmentBuilder
2024-01-25 22:50:20 -05:00
Dileep V. Reddy
d3405837ce
Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars.
2024-01-21 12:13:42 -05:00
Dileep V. Reddy
08b03e6b19
Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom.
2024-01-21 12:13:42 -05:00
Rachael Alexanderson
af08413e10
- reverting pull request #2361 - apparently pull request #2364 changed some behaviour and these two do not play nice together. One or the other unfortunately has to be rolled back to allow GZDoom to build properly again.
...
Revert "Restored r_orthographic behavior."
This reverts commit 26908f5bc5 .
Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."
This reverts commit dc897eacc0 .
Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."
This reverts commit d2c2c93cf1 .
2024-01-21 08:18:16 -05:00
Dileep V. Reddy
dc897eacc0
Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars.
2024-01-21 03:34:00 -05:00
Dileep V. Reddy
d2c2c93cf1
Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom.
2024-01-21 03:34:00 -05:00
Christoph Oelckers
83aa9388ca
backend update from Raze
...
* moving large allocations off the stack
* use proper printf formatters for size_t and ptrdiff_t.
* adding some missing 'noexcept'.
2024-01-06 15:24:10 +01:00
Christoph Oelckers
a020b8c2f5
do not compile the first shader in the shader manager's constructor
...
This was crashing with the move of the V_Init2 call. Instead do it when we first render something so that we can open the window without immediately making the full backend operational.
This was only working on GLES because it performs lazy shader compilation.
2024-01-05 16:55:11 +01:00
Christoph Oelckers
e27cbe5bd9
convert more files to UTF-8.
...
It was mostly degree signs causing these issues.
2024-01-02 21:54:29 +01:00
Professor Hastig
16e8e71971
fixed infinite recursion in vid_preferbackend.
2023-12-28 17:11:17 +01:00
Christoph Oelckers
df3e82d94c
cleaned up some redundant file reads and fixed file opening in the movie player.
...
As a streaming action this cannot borrow the one from the archive.
2023-12-14 17:22:31 +01:00
Rachael Alexanderson
747e55ce60
- fix GL ES switch appearing as 'Unknown' in the menu sometimes
2023-11-13 17:12:00 -05:00
Christoph Oelckers
9f90c64727
use FTranslationID in the high level parts of the hardware renderer.
2023-11-09 23:04:11 +01: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
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
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