Commit graph

921 commits

Author SHA1 Message Date
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
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
Christoph Oelckers
5f11fd051b - fixed the overlapping sector handler in hw_fakeflat.cpp.
this picked the wrong plane as the proper texture cutoff.
2023-09-16 22:17:09 +02:00
Christoph Oelckers
096b9cdc4f - fixed. Boom's generalized crushers must stop 8 units above the floor
This required changing the special, so a new one was added to avoid altering Generic_Crusher.
2023-09-15 00:35:20 +02:00
Christoph Oelckers
139d1a7eb6 - use wrapping fixed point conversion for SW rendering coordinates. 2023-09-14 20:34:28 +02:00
Christoph Oelckers
6847a9a5c1 - added a nomirrors compatibility handler and applied it to Conf256's CONF55 map.
This is for disabling broken plane reflection setups.
2023-09-14 20:21:35 +02:00
Professor Hastig
fbf7d1025a - fixed bad clamp in software renderer
This one can have its upper bound below its lower bound which triggers the validation within std::clamp.

Fixes #2125
2023-09-14 05:11:02 -04:00
Cacodemon345
7c90ea6b84 - Convert the entire image backend infrastructure to be animation-friendly 2023-08-23 18:18:45 +02:00
alexey.lysiuk
bfefc12427 - fixed a bunch of Linux and macOS compilation errors 2023-08-23 12:34:33 +03: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
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
Ricardo Luís Vaz Silva
1852f14f30 fix rare crash due to null caller 2023-08-02 01:05:24 -04:00
Ricardo Luís Vaz Silva
bcbb85b1dd Add Weapon::ModifyBobLayer , Weapon::ModifyBobLayer3D and Weapon::ModifyBobPivotLayer3D 2023-08-02 01:05:24 -04: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
l2ksolkov
245dac814e Add missing include guards 2023-05-29 07:35:26 +02:00
Magnus Norddahl
b0dfa06201 Add dynamic light support to true color slope drawer 2023-02-19 08:06:49 +01:00
Magnus Norddahl
99f2b5d891 Fix misc bugs for dynamic lights in the pal slope drawer 2023-02-19 08:06:49 +01:00
Magnus Norddahl
18bc384807 Add dynamic lights to pal slope drawer 2023-02-19 08:06:49 +01:00
Ricardo Luís Vaz Silva
b84bf176e1 Fix Software Slope Rendering for non-1.2 pixel ratios 2023-02-17 14:15:46 -05:00
Christoph Oelckers
f6bfc48d9f - Backend update from Raze. 2023-02-11 12:05:45 +01:00
Emile Belanger
7349c95623 Fixes bones when using OpenGL 3.3 (UBO bone data) 2023-01-29 20:03:58 +01:00
Hugo Locurcio
ad49d52b1c Add cvars to sprite shadows progressively according to thing <-> floor distance
This also adds the `r_actorspriteshadowalpha` and `r_actorspriteshadowfadeheight`
cvars for greater control (only effective in hardware renderers).
These are set to 0.5 and 0 by default, which means this fading behavior
is disabled by default.

When enabled, this has two benefits:

- It becomes easier for the player to judge an entity's height since
  the shadow opacity now gives this information.
- Entities that are far high above the ground no longer cast a shadow,
  which looked strange.
2023-01-25 17:43:04 -05:00
Christoph Oelckers
bafd6be342 - removed backend dependencies on game data. 2023-01-15 08:23:26 +01:00
Ricardo Luís Vaz Silva
8e7897233e Add Alternate Light Blending Options 2023-01-14 11:29:12 -05:00
Ricardo Luís Vaz Silva
de65d1b96f Misc Fixes for BobWeapon3D
- Fix inverted Y axis for offset/old BobWeapon
- finish adding PSPF_MIRROR
- fix missing pivot
2022-12-12 15:23:12 +01:00
Ricardo Luís Vaz Silva
46d36cf5c7 add BobWeapon3D 2022-12-09 21:49:38 +01:00
Mitchell Richters
6629944d39 - Make the new scaled angle changes at frame rate opt-in behind new flag SPF_SCALEDNOLERP.
* This will still test whether the game needs to lerp and will force `SPF_INTERPOLATE` if needed.
2022-12-04 15:11:17 +01:00
Mitchell Richters
cf1ac82da3 - Set up interpolated camera angle changes to occur at framerate when all conditions in P_NoInterpolation() are met. 2022-12-04 15:11:17 +01:00
Mitchell Richters
20bf9e89f5 - Split insane interpolation test if statement into a function, we'll need this elsewhere later on. 2022-12-04 15:11:17 +01:00
Mitchell Richters
9f9c1eb18a - Make view angles interpolate on a separate flag to the one that forces interpolation for the entire frame.
* As view angles are an offset, there's no reason why these cannot lerp separately.
2022-12-04 15:11:17 +01:00
Mitchell Richters
6594ec0750 - Remove local angle truncation in R_InterpolateView().
* Genuinely see no need for this. If the local angle is BAM, why not just use it to its maximum precision?
2022-12-04 15:11:17 +01:00
Ricardo Luís Vaz Silva
f666edc60c Allow Disabling of XY Billboard for Particles 2022-12-03 23:27:46 +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
31d8a23046 - avoid infinite portal recursion. 2022-11-12 09:00:18 +01:00
Ricardo Luís Vaz Silva
31ded6dd8a Enable ANIMDEFS for particles 2022-11-08 23:56:03 -05:00
Christoph Oelckers
706d465781 - removed the unused BaseBlend* variables and the testblend CCMD.
When this was still working it was software rendering only anyway so no real loss here.
2022-11-08 11:46:13 +01:00
Christoph Oelckers
500e2d6c5a Revert software renderer parts of "- sprite lightlevel cleanup and fixes."
This code had some issues which are not easily fixed, so it's better to just undo it all.
2022-11-05 09:55:25 +01:00
Ricardo Luís Vaz Silva
7d81417829 Particle Rolling 2022-11-01 22:30:16 +01:00
Ricardo Luís Vaz Silva
b6202ffc4c Add Textured Particles 2022-11-01 21:25:31 +01:00
crashmahoney
0ca868d93f Fix HUD models not drawing if MODELDEF has been changed with A_ChangeModel 2022-11-01 11:48:16 +01:00
Magnus Norddahl
181eda0a83 Fix canvas textures getting clipped by wrong scissor box 2022-10-28 18:01:59 -04: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
457b9b71d9 - disable the native part of coronas as well. 2022-10-20 07:50:53 +02:00
nashmuhandes
80a31b074d Disable coronas for now 2022-10-19 22:52:27 +02:00
Shiny Metagross
5b60118af2 HUD models now render properly
- IQM HUD Models will now render properly
2022-10-19 22:48:57 +02:00
Shiny Metagross
6564adf310 Fixed a couple bugs
- MODELSAREATTACHMENTS was basically being applied anyways
- Fixed a crash related to using an animation that never had the vertex buffer drawn because it was never used as a model
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
08f520f1c6 IQM Support Implemented
More info to come
2022-10-19 22:48:57 +02:00