Christoph Oelckers
56f2b2ac56
- reduce backend's dependency on game state by using callbacks.
2020-04-11 20:19:53 +02:00
Christoph Oelckers
6996d54a23
- moved more code to 'common'.
...
This is all low level utilities with no dependencies on game logic. Having this in a separate directory makes sharing with Raze a lot easier.
2020-04-11 14:00:12 +02:00
Rachael Alexanderson
bdc7329d32
- replace vid_enablevulkan with vid_preferbackend - disabled startup window selector for this (will replace when the startup screen changes are done)
2019-12-01 16:06:36 -05:00
Magnus Norddahl
4a25c9f69b
Merge remote-tracking branch 'origin/master' into polybackend
2019-12-01 20:09:19 +01:00
Christoph Oelckers
2e7af1338c
- the big cleanup of the exit cleanup is done!
...
atterm is gone and only a few system-side functions use atexit.
All game side cleanup is performed in D_DoomMain now.
2019-10-07 20:28:55 +02:00
Christoph Oelckers
86ab366958
- some reformatting on exit code, mainly to make searching for the content easier.
2019-10-01 19:06:28 +02:00
Magnus Norddahl
9da46d0e0a
- force this branch to always use the poly backend
2019-07-24 21:45:37 +02:00
Magnus Norddahl
e6f6f10e81
Merge remote-tracking branch 'origin/master' into polybackend
2019-07-24 21:39:07 +02:00
Christoph Oelckers
79ad3e6203
- define _WIN32_WINNT to 0x600 (Vista) in the CMake project instead of littering all files with inconsistent settings for the target version.
2019-07-14 16:55:01 +02:00
Magnus Norddahl
bb47230f79
Merge remote-tracking branch 'origin/master' into polybackend
2019-06-10 22:46:32 +02:00
Christoph Oelckers
2766303cfc
- consolidated the 3 atterm implementations.
...
Each platform had its own copy. Why?
2019-06-10 12:01:01 +02:00
Magnus Norddahl
4fd4bfa092
Merge remote-tracking branch 'origin/master' into polybackend
2019-05-24 19:21:36 +02:00
Magnus Norddahl
756c593e96
- create a new error class for vulkan errors as they are only recoverable during initialization (unlike CRecoverableError which is recoverable during normal processing)
...
- improve vulkan errors by including the status code returned by vulkan if they fail
2019-05-23 14:09:05 +02:00
Magnus Norddahl
0eda298db2
- create a renderer backend based on softpoly's drawers
2019-05-22 06:29:52 +02:00
Rachael Alexanderson
09a2b53b21
- rename vid_backend to vid_enablevulkan. Also changed the CVAR from a 0-state enable to 1-state. So vid_enablevulkan==1 enables vulkan now. This should be less confusing.
2019-04-16 08:10:57 -04:00
Christoph Oelckers
ab256945aa
- use I_Error for throwing errors in the Vulkan backend and print the message if one gets thrown during init.
2019-04-08 23:48:46 +02:00
Magnus Norddahl
9f0f659db0
- remove old vid_maxfps implementations as they were garbage anyway and the new one works on all the platforms
2019-03-26 11:10:17 +01:00
Christoph Oelckers
a0b0467e91
- restrict Vulkan to 64 bit builds.
2019-03-24 14:34:48 +01:00
alexey.lysiuk
7b5eedea32
- implemented OpenGL / Vulkan switch in SDL backend
2019-03-12 16:12:14 +02:00
Rachael Alexanderson
6be5769746
- implement backend switcher for Windows. NYD: Still needs to be done for Mac and Linux
2019-03-11 23:36:44 -04:00
Magnus Norddahl
c6b29846d0
- add 3rd party vulkan dependencies
...
- add stubs for a vulkan hw renderer backend
- add RAII wrappers for vulkan object types
- add builder classes to isolate vulkan boilerplate code
- add a swap chain class
2019-02-20 21:21:57 +01:00
Christoph Oelckers
f6a91e1722
- moved the I_Error prototypes to doomerrors.h to avoid having to include the low level system header for this.
2019-01-31 19:38:04 +01:00
Christoph Oelckers
3b53f31da3
- default to fullscreen display.
2018-07-28 10:05:50 +02:00
Christoph Oelckers
1519514dd7
- split Win32GLVideo in two so that the OpenGL independent part can be used for Vulkan as well.
2018-06-24 20:47:00 +02:00
Christoph Oelckers
babe55819e
- fullscreen toggle and some cleanup. Not fully working yet.
2018-06-17 22:11:35 +02:00
Christoph Oelckers
b65b83edb3
- removed the hard screen resolution switch that still was present on Windows and cleaned up the entire video backend code from the remaining support code for this.
...
Like Linux and macOS this will only support borderless fullscreen in the active desktop resolution now, which is what modern systems need.
The list of discrete resolutions has been removed as it makes no sense anymore with a fixed video mode - all the other scaling options remain active, though.
2018-06-17 20:08:35 +02:00
Christoph Oelckers
dc2a5b0cc9
- consolidated the 3 identical versions of I_CheckResolution and I_ClosestResolution.
2018-06-17 12:30:01 +02:00
alexey.lysiuk
2ae8d39441
Removed all superfluous #include's
...
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
Christoph Oelckers
df4f435952
- merged vid_renderer, swtruecolor and r_polyrender into one CVAR to reduce menu clutter.
...
- with renderers freely switchable, some shortcuts in the 3D floor code had to be removed, because now the hardware renderer can get FF_THISINSIDE-flagged 3D floors.
- changed handling of attenuated lights in the legacy renderer to be adjusted when being rendered instead of when being spawned. For the software renderer the light needs to retain its original values.
2018-04-07 23:30:28 +02:00
Christoph Oelckers
5fbc723842
- live switching of the renderer works.
2018-04-07 12:59:04 +02:00
Christoph Oelckers
d474b849a5
- removed the remaining calls from the FRenderer interface from the main game code.
...
This does not work with a setup where the same backend is driving both renderers.
Most of this is now routed through 'screen', and the decision between renderers has to be made inside the actual render functions.
The software renderer is still driven by a thin opaque interface to keep it mostly an isolated module.
2018-04-04 00:21:25 +02:00
Christoph Oelckers
9ba32cb994
- with the new order of things we need the software renderer to be always available.
2018-04-03 20:14:26 +02:00
Christoph Oelckers
51bf2eb9fa
- took GetMaxViewPitch out of renderer interfaces.
...
With live switching and both renderers on the same backend the old approach will no longer work.
2018-04-03 19:18:16 +02:00
Christoph Oelckers
6cd26dec01
- remove some dead code.
2018-03-31 00:25:15 +02:00
Christoph Oelckers
a001a5304d
- removed the old software renderer framebuffers for Windows
...
This cannot be refactored with the old code still present and done properly both renderers should share what they can.
2018-03-30 23:18:25 +02:00
Christoph Oelckers
29ad081368
- removed remaining DirectDraw code and a few other things that are no longer being used.
2018-03-27 21:04:01 +02:00
Christoph Oelckers
f2f649bf77
- put all stats related code into one file.
2018-03-12 19:33:48 +01:00
Christoph Oelckers
d2fa4d0ff9
- most stat stuff done.
2018-03-12 19:33:48 +01:00
Rachael Alexanderson
c15e868b0f
- implemented anonymous stats collector
2018-03-12 19:33:48 +01:00
Rachael Alexanderson
938cd3cabe
- implemented win_borderless for fake fullscreen in Windows
2017-12-07 06:32:51 -05:00
Magnus Norddahl
1a4cf16168
- Fix swtruecolor cvar messing up the chosen video mode
2017-07-23 20:54:03 +02:00
Magnus Norddahl
c3702ae9e7
Add vid_scalemode support to GL framebuffer
2017-07-23 00:33:56 +02:00
Magnus Norddahl
c8e713b067
- Remember maximized window state
2017-07-09 15:12:31 +02:00
Rachael Alexanderson
4545bb2fa1
- rename vid_used3d on windows to vid_glswfb to match Linux. Additionally, the values were reversed to match the Linux variant of this configuration. This CVar now operates exactly the same way it does on Linux, except it defaults to being off and still allows the D3D framebuffer on Windows when it's deactivated.
2017-05-27 04:52:43 -04:00
Rachael Alexanderson
aae9b33198
- fixed: Swapping swtruecolor no longer crashes in OpenGL mode after selecting Software in the menu
2017-04-30 07:39:00 -04:00
Christoph Oelckers
dc5a5419fc
- took DCanvas and all its subtypes out of the DObject tree.
...
I have no idea why they were even in there, as they intentionally circumvented all GC related features - they declared themselves fixed if prone to getting collected, they all used OF_YesReallyDelete when destroying themselves and they never used any of the object creation or RTTI features, aside from a single assert in V_Init2.
Essentially they were a drag on the system and OF_YesReallyDelete was effectively added just to deal with the canvases which were DObjects but not supposed to behave like them in the first place.
2017-04-14 10:48:18 +02:00
Christoph Oelckers
fec958cc0a
- finally managed to get rid of the DWORD type.
...
This one was particularly nasty because Windows also defines a DWORD, but in Windows it is an unsigned long, not an unsigned int so changing types caused type conflicts and not all could be removed.
Those referring to the Windows type have to be kept, fortunately they are mostly in the Win32 directory, with a handful of exceptions elsewhere.
2017-03-10 19:46:22 +01:00
Rachael Alexanderson
536e8fad19
- Make QZDoom GZDoom again!
2017-03-09 11:51:42 -05:00
Rachael Alexanderson
4ebd25171c
- Implemented a simple graphics switch. This currently affects NVidia Optimus-enabled notebooks only.
2017-03-01 09:58:56 -05:00
Magnus Norddahl
2659090e1c
Move renders into folders
2016-12-27 06:31:55 +01:00