Christoph Oelckers
191b958791
- 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.
# Conflicts:
# src/CMakeLists.txt
# src/atterm.cpp
# src/atterm.h
# src/d_main.cpp
# src/dobjtype.cpp
# src/g_mapinfo.cpp
# src/g_statusbar/sbarinfo.cpp
# src/gamedata/g_mapinfo.h
# src/i_net.cpp
# src/p_setup.cpp
# src/posix/cocoa/i_video.mm
# src/posix/sdl/hardware.cpp
# src/posix/sdl/i_main.cpp
# src/r_utility.cpp
# src/rendering/v_video.cpp
# src/sound/s_advsound.cpp
# src/sound/s_sound.cpp
# src/swrenderer/r_swcolormaps.cpp
# src/win32/hardware.cpp
# src/win32/i_input.cpp
# Conflicts:
# src/CMakeLists.txt
# src/i_net.cpp
# src/posix/sdl/i_system.cpp
# src/r_utility.cpp
# src/win32/i_system.cpp
2020-01-05 23:57:44 +01:00
drfrag
0a9b20062a
- Fixed compilation on non Windows platforms.
2019-10-13 12:54:16 +02:00
drfrag
cc22109e95
- Fixed capped tall skies not working (Heretic and Hexen).
2019-10-09 13:10:52 +02:00
drfrag
302b9a768a
- Fixed sky stretching for the new freelook limit.
2019-10-09 13:10:35 +02:00
drfrag
b5bb5fa0bd
- Fixed another crash in the software renderer now with transparent sprites (Stronghold STR12), it's a bit hacky and now you get a white flash instead.
2019-09-17 18:48:31 +02:00
drfrag
ca537d716b
- Disable models by default only for the classic software renderer with the r_models_carmack CVAR. Performance is not affected in SoftPoly.
2019-09-15 12:54:59 +02:00
drfrag
2f425dbc72
- Disable models by default for the software renderer as they make it much slower.
2019-09-14 18:44:39 +02:00
drfrag
9ee78de8fe
- Fixed crash drawing fog boundaries in the software renderer hopefully this time for real. Based on Rachael's "do a texture check when drawing fog borders" commit. Now it crashes somewhere else tough.
2019-09-13 18:47:35 +02:00
Christoph Oelckers
b473fc936c
- consolidated the 3 atterm implementations.
...
Each platform had its own copy. Why?
# Conflicts:
# src/CMakeLists.txt
# src/dobjtype.cpp
# src/g_mapinfo.cpp
# src/g_statusbar/sbarinfo.cpp
# src/i_net.cpp
# src/menu/menudef.cpp
# src/p_setup.cpp
# src/posix/cocoa/i_video.mm
# src/posix/i_system.h
# src/posix/sdl/i_main.cpp
# src/r_utility.cpp
# src/s_advsound.cpp
# src/s_sound.cpp
# src/v_video.cpp
# src/win32/i_input.cpp
# src/win32/i_system.h
# Conflicts:
# src/CMakeLists.txt
# src/doomtype.h
# src/i_net.cpp
# src/posix/sdl/i_system.cpp
# src/win32/i_system.cpp
# src/win32/win32video.cpp
2019-06-10 20:52:02 +02:00
drfrag
ab24128049
- Missed some things regarding software threads.
...
(with help from dpJudas)
2019-05-10 11:27:12 +02:00
drfrag
88e8034db1
- Fall back to two threads for software and add a warning if the number of cores cannot be determined.
2019-05-09 15:06:22 +02:00
Christoph Oelckers
18bf8d65ba
- fixed radius use in dynamic light traversal for models.
...
# Conflicts:
# src/hwrenderer/scene/hw_spritelight.cpp
# Conflicts:
# src/gl/scene/gl_spritelight.cpp
2019-05-02 18:00:43 +02:00
Christoph Oelckers
9ca41daf15
- removed the NetUpdate calls from the software renderer.
...
These can cause highly dangerous recursions and execute play code deep inside the renderer and since the hardware renderer does not have these, there is very little point for the software renderer to retain them.
# Conflicts:
# src/polyrenderer/poly_renderer.cpp
# src/rendering/swrenderer/line/r_walldraw.cpp
# Conflicts:
# src/swrenderer/line/r_renderdrawsegment.cpp
2019-05-01 00:07:08 +02:00
Christoph Oelckers
074ee3238b
- sanitized the 'frozen level' code.
...
This had two different flags that were checked totally inconsistently, and one was not even saved.
Moved everything into a few subfunctions so that these checks do not have to be scattered all over the code.
# Conflicts:
# src/actorinlines.h
# src/decallib.cpp
# src/g_levellocals.h
# src/hwrenderer/scene/hw_sprites.cpp
# src/p_mobj.cpp
# src/p_saveg.cpp
# src/p_user.cpp
# src/polyrenderer/scene/poly_particle.cpp
# src/scripting/vmthunks.cpp
# src/swrenderer/things/r_particle.cpp
# wadsrc/static/zscript/actors/player/player.zs
# wadsrc/static/zscript/base.zs
# Conflicts:
# src/g_levellocals.h
# src/hwrenderer/scene/hw_sprites.cpp
# wadsrc/static/zscript/base.txt
2019-04-28 19:10:52 +02:00
Christoph Oelckers
8fecfb8f85
- properly handle passing of the light flags.
...
Since these can be changed on the placed light actor they have to be read from there, so this is now a pointer in FDynamicLight, just like the other properties that can be user-changed.
Also did some cleanup on the interface so that external code doesn't need to dereference the lightflags pointer but can use utility functions for all flags.
# Conflicts:
# src/hwrenderer/dynlights/hw_dynlightdata.cpp
# src/swrenderer/line/r_walldraw.cpp
# Conflicts:
# src/g_level.cpp
# src/gl/compatibility/gl_20.cpp
2019-04-26 00:42:05 +02:00
Christoph Oelckers
f261ec7d53
- rewrote dynamic lights to not use actors for the internal representation and made DynamicLight a purely scripted class.
...
This should be less of a drag on the playsim than having each light a separate actor. A quick check with ZDCMP2 showed that the light processing time was reduced to 1/3rd from 0.5 ms to 0.17 ms per tic.
It's also one native actor class less.
# Conflicts:
# src/g_shared/a_dynlight.cpp
# src/g_shared/a_dynlight.h
# src/hwrenderer/dynlights/hw_dynlightdata.cpp
# src/hwrenderer/dynlights/hw_dynlightdata.h
# src/hwrenderer/scene/hw_renderhacks.cpp
# src/namedef.h
# src/scripting/thingdef_data.cpp
# src/swrenderer/line/r_walldraw.cpp
# Conflicts:
# src/d_main.cpp
# src/g_levellocals.h
# src/g_shared/a_dynlight.cpp
# src/g_shared/a_dynlight.h
# src/gl/dynlights/gl_dynlight.h
# src/gl/dynlights/gl_dynlight1.cpp
# src/gl/scene/gl_spritelight.cpp
# src/gl/scene/gl_walls.cpp
# src/hwrenderer/dynlights/hw_shadowmap.cpp
# src/hwrenderer/dynlights/hw_shadowmap.h
# src/hwrenderer/scene/hw_flats.cpp
# src/p_setup.cpp
2019-04-26 00:19:03 +02:00
Magnus Norddahl
a399ce48a9
- fix decals looking blackened due to low lookup table precision when alpha is zero
2019-04-18 16:26:18 +02:00
Christoph Oelckers
e87d04d843
- added a 'forceworldpanning' map flag.
...
Since unfortunately this cannot be set as a general default, let's at least make it as easy as possible to disable that panning+scaling madness without having to edit the texture data.
# Conflicts:
# src/swrenderer/textures/r_swtexture.h
# src/textures/texture.cpp
# Conflicts:
# src/textures/texture.cpp
2019-04-18 13:14:32 +02:00
Christoph Oelckers
71e77defa3
- use a TArray to store the particles and remove all 16 bit global variables.
...
This means one less exit function to deal with - and these days 16 bit variables are a pointless attempt at saving space.
2019-04-18 13:12:51 +02:00
Christoph Oelckers
10aea91745
- don't put mutexes into static local variables.
...
Their initialization semantics are not safe for synchronization objects.
2019-04-17 18:44:08 +02:00
Christoph Oelckers
d31f67cb43
- consolidated the 3 nearly identical code fragments handling the weapon's YAdjust for the different renderers into a utility function in DPSprite.
...
# Conflicts:
# src/hwrenderer/scene/hw_weapon.cpp
# src/polyrenderer/scene/poly_playersprite.cpp
# src/swrenderer/things/r_playersprite.cpp
2019-04-15 22:07:45 +02:00
drfrag666
cdb60486c7
- Fixed compilation of previous commit.
2018-11-30 10:16:55 +01:00
Magnus Norddahl
e76a9c3085
- forgot to set the light level
2018-11-29 11:26:32 +01:00
Magnus Norddahl
20d5b904b2
- use psprite renderstyle on HUD models
2018-11-29 11:26:20 +01:00
drfrag666
557380a769
- Added alpha parameter to DrawLine for the GL renderer, it's a fake parameter for the software renderer so mods don't crash.
2018-11-02 13:04:37 +01:00
Rachael Alexanderson
6aa51b08da
- do a texture check when drawing fog borders in the software renderer. this does not fix the crash issue, but mitigates it enough with a check that likely should be in place, anyhow.
2018-11-01 19:10:55 +01:00
drfrag666
eebd6c8319
Revert "- removed the 8x8 block drawing code from softpoly"
...
This reverts commit d086c3d4dc
.
# Conflicts:
# src/polyrenderer/drawers/poly_triangle.cpp
# src/polyrenderer/drawers/poly_triangle.h
The softpoly renderer crashed at high resolutions without them.
2018-10-26 19:51:30 +02:00
drfrag666
2c8b5e700f
Revert "- use the worker threads to clear the stencil buffer"
...
This reverts commit 0a265d028d
.
# Conflicts:
# src/polyrenderer/drawers/poly_triangle.cpp
# src/polyrenderer/drawers/poly_triangle.h
2018-10-26 19:39:38 +02:00
drfrag666
195a54e0d1
- Fixed compilation of previous commit.
2018-07-28 12:42:14 +02:00
Magnus Norddahl
7144ac6897
- add support for specifying the exact thread count to r_multithreaded and r_scene_multithreaded
2018-07-28 12:30:10 +02:00
drfrag666
4ed793eb3b
- Disabled truecolor rendering and dynamic lights for software by default.
2018-07-27 02:04:18 +02:00
drfrag666
021f5cf656
- Enabled render distance cull options by default.
2018-06-27 12:35:48 +02:00
Christoph Oelckers
833006b5d9
Fixed: Software rendered models checked the wrong CVAR for enabled dynamic lights.
...
(cherry picked from commit e402babfc0
)
2018-06-26 11:21:22 +02:00
drfrag666
abb2f6fd32
- Disabled EFX for OpenAL by default. This option has a severe performance impact on single core cpus.
...
- Disabled mipmapped textures for truecolor by default.
2018-06-20 20:56:02 +02:00
Magnus Norddahl
087f709637
- fix Software models don't display over nonexistent sprites
...
(cherry picked from commit bce49ad7c8
)
2018-06-17 18:55:44 +02:00
Magnus Norddahl
34500a6324
- move DrawArray and DrawElements to PolyTriangleDrawer
...
(cherry picked from commit a91147a3a5
)
2018-06-16 19:59:22 +02:00
Magnus Norddahl
db8c8c5ac3
- add support for using FModelVertex as input to the softpoly vertex shader
...
(cherry picked from commit 9ba26a5ece
)
2018-06-16 19:59:19 +02:00
Magnus Norddahl
380d90f532
- add GroupMemoryBarrierCommand
...
(cherry picked from commit c9fd52340e
)
2018-06-16 19:58:39 +02:00
Magnus Norddahl
9bcd8aeb13
- remove unused VectoredTryCatch
...
# Conflicts:
# src/win32/i_crash.cpp
2018-06-16 19:52:12 +02:00
Magnus Norddahl
ddbf2f3166
- remove unused DrawerCommand::DebugInfo
...
(cherry picked from commit 628f6c32d9
)
2018-06-16 19:20:21 +02:00
Magnus Norddahl
0a265d028d
- use the worker threads to clear the stencil buffer
...
(cherry picked from commit de67393b4e
)
2018-06-16 19:20:19 +02:00
Magnus Norddahl
fe940d09a6
- enable model rendering in the software renderer
...
(cherry picked from commit 85f5f897d7
)
# Conflicts:
# src/polyrenderer/scene/poly_playersprite.cpp
# wadsrc/static/menudef.txt
2018-06-16 19:20:17 +02:00
Magnus Norddahl
01332a1bde
- add dynamic lights to softpoly and software renderer models
...
(cherry picked from commit 5464d2a577
)
# Conflicts:
# src/gl/scene/gl_spritelight.cpp
2018-06-06 08:49:08 +02:00
Magnus Norddahl
f70715e25a
- fix software renderer dynamic lights not working properly in mirrors
...
(cherry picked from commit f5386a706f
)
2018-06-05 21:15:12 +02:00
Magnus Norddahl
d0ff0bcaf2
- draw models in mirrors and portals at the right location in the software renderer
...
(cherry picked from commit b74a9965b8
)
2018-06-05 21:15:12 +02:00
Magnus Norddahl
b07c4c41c7
- always store 255 in alpha channel for opaque things as the alpha channel is no longer ignored by the framebuffer backend (software drawer)
...
(cherry picked from commit 25784c2e57
)
2018-06-03 20:13:12 +02:00
Marisa Kirisame
1afcd9b7c7
Mirroring should be flipped on HUD models since the view to world space transform already inverts one axis
...
(cherry picked from commit f74e74ac4b
)
2018-06-03 19:51:45 +02:00
Marisa Kirisame
5a76623993
Swap front face culling for GL model drawer (CCW should be the default).
...
Added mirroring handling to software models.
(cherry picked from commit dea1d0259d
)
2018-06-03 19:49:48 +02:00
Magnus Norddahl
d086c3d4dc
- removed the 8x8 block drawing code from softpoly
...
(cherry picked from commit a186677092
)
2018-06-03 19:46:38 +02:00
Christoph Oelckers
ff5c488a0f
- pass mirroring info to model drawers.
...
Actual evaluation only implemented in OpenGL. Not tested yet because the bug report had no testable example.
(cherry picked from commit 94d1a73ae8
)
2018-06-02 21:31:23 +02:00