* Feature-complete isometric mode fork.
* Dithered transparency condition tweaks.
* Dithered transparency for non-corpse monsters only (and missiles).
* SpectatorCamera vertical shift.
* Including math.h in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).
* Defining MY_SQRT2 in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).
* Defining MY_SQRT2 in r_utility.cpp also to keep visual studio happy.
* retrigger checks
* Have correct sprite angle-frame face the camera with orthographic projection enabled.
* Dithered Transparency now works properly on 3D floors. Moved that dither-trans flag setting code within hw_bsp.cpp to handle double-processing of linedefs. Added helper functions to FRenderViewpoint class 'bool IsOrtho()' and 'bool IsAllowedOoB()' to clean up checks everywhere in the code.
* Fixed indents. Added bbox property to subsector struct and use it instead of BSP nodes and Clippers (creating a bbox around viewpoint and checking for overlap) in orthographic mode when no fog of war is active. Turns out to be much faster. Though you need really big maps (Winter's Fury MAP01) to see a difference in fps.
* Non-linux checks don't like uint. Changed to unsigned int.
* Small change of a float to camera.zs. Ignore for testing. Should make no difference.
* Update actor.h to remain mergeable
RF2_NOMIPMAP was introduced, so I had to displace RF_ISOMETRICSPRITES to next bit.
* 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.
- Always allow skyboxes by default
- Add option to disable skyboxes through mapinfo
Squashed commit of the following:
commit d4c4d9310d0157ce575f52989b5b080398cf7629
Author: Marisa Kirisame <marisa@sayachan.org>
Date: Wed Dec 30 09:58:39 2020 +0100
Disable AO for skybox portals (can be forced back with MAPINFO flag).
* made the portal state global, outside the framebuffer, because it is pure logic state without dependencies on the backend.
* took the setup functions out of FDynLightData - there is no need to have them as members and they age game dependent.
This shouldn't be in the hardware independent interface because the semantics on OpenGL and Vulkan are too different, so a common implementation is not possible.
Most bind calls were in the GL interface anyway, so these no longer pass through hardware independent code.
This also moves the bind calls in the shadowmap code into the GL interface - these never did anything useful in Vulkan and aren't needed there.
Last but not least, this moves the legacy buffer binding handling into FGLRenderState and performs the initial binding for the light buffer in a more suitable place so that this doesn't have to pollute the render state.