Commit graph

208 commits

Author SHA1 Message Date
Magnus Norddahl
bfe6bffd33 - fix hud model clipping 2018-05-07 00:33:16 +02:00
Christoph Oelckers
9bdb0f2e49 - renamed the flag bits for sector_t::MoreFlags, so that they are easier to distinguish from sector_t::Flags.
- precalculate if a sector's floor and ceiling plane overlap. This avoids rechecking this for each single call of hw_FakeFlat.
- vertices must be marked dirty every time they change after map setup. That means that ChangePlaneTexZ must do this as well, because it cannot rely on interpolation taking care of it.
- Having a 'dirty' argument for SetPlaneTexZ's ZScript version makes no sense. If the value changes from the script side the vertices must always be marked to be recalculated.
2018-05-01 11:29:29 +02:00
Christoph Oelckers
f49c6cbde2 - use sector_t::GetHeightSec consistently and optimize it.
This was all over the place, with half of it using the function and half doing incomplete checks on the underlying variables.
Also did some optimization on the IGNOREHEIGHTSEC flag: Putting it on the destination sector instead of the model sector makes the check even simpler and allows to precalculate the effect of 3D floors on the heightsec, which previously had to be run on every call and made the function too complex for inlining.
2018-05-01 09:47:09 +02:00
Christoph Oelckers
c5641a0e72 - GLFlat split into API-dependent and -independent data.
No resorting of the files yet.
2018-04-28 12:34:09 +02:00
Magnus Norddahl
45625399dc - fix softpoly line portals 2018-04-23 23:09:11 +02:00
Magnus Norddahl
2aee68d215 - slightly improve sector portal handling in softpoly 2018-04-23 01:03:37 +02:00
Magnus Norddahl
6e77cb4906 - fix softpoly mirrors 2018-04-22 23:29:39 +02:00
Magnus Norddahl
16a8d71caf - Simplify the portal code in softpoly somewhat 2018-04-21 15:19:28 +02:00
Magnus Norddahl
f5c2ffabc9 - fix softpoly portal crash and blinking translucent objects 2018-04-16 01:08:29 +02:00
Magnus Norddahl
61032cb6ae - fix softpoly portal crash 2018-04-15 14:40:52 +02:00
Magnus Norddahl
ee443b6fb6 - disable software models 2018-04-14 22:22:40 +02:00
Magnus Norddahl
7e544c66fe Merge remote-tracking branch 'gzdoom/master' into swmodels 2018-04-13 21:35:21 +02:00
Christoph Oelckers
3dc670a0cc - missed this. 2018-04-08 21:02:15 +02:00
Christoph Oelckers
e6ce429ca5 - fixed alpha for hardware rendered weapon sprites in the software renderer. 2018-04-08 20:40:29 +02:00
Magnus Norddahl
c4768441b4 - Fix playersprite offset being wrong in softpoly
- Remove DFrameBuffer::GetCanvas as it always returned null
2018-04-08 15:49:06 +02:00
Magnus Norddahl
2d51fa5b43 - Clean up PolyTriangleDrawer API so that it can better support both softpoly and the swrenderer
- Slightly improve how softpoly processes portals
- Pass the vertex transform matrix via a command rather than being part of the drawer args
- Improve zbuffer drawers in the software renderer
- Misc model rendering fixes
2018-04-07 15:48:48 +02:00
Christoph Oelckers
6d6196388e - made SPROFS a more usable feature.
This was originally invented to fix the sprite offsets for the hardware renderer.
Changed it so that it doesn't override the original offsets but acts as a second set.
A new CVAR has been added to allow controlling the behavior per renderer.
2018-03-31 10:37:46 +02:00
Christoph Oelckers
1e5fbc1423 Merge remote-tracking branch 'remotes/origin/master' into 2D_Refactor
# Conflicts:
#	src/posix/cocoa/i_video.mm
2018-03-30 22:06:17 +02:00
alexey.lysiuk
709bbe3db0 Fixed crash on accessing player sprite's state in software renderer
https://forum.zdoom.org/viewtopic.php?t=60034
2018-03-30 16:40:31 +03:00
Christoph Oelckers
a40e085a46 - 2D drawer implementation complete for hardware renderer.
This also replaces DTA_ColormapStyle with proper implementations of its components. As implemented it was a very awkward mixture of various effects that already existed in a separate form. As a result of its implementation it required additional but completely redundant shader support which could be removed now. As a side effect of this change a new DTA_Desaturate option was added.
2018-03-29 16:21:21 +02:00
Christoph Oelckers
0c3635e22c - removed vid_hw2d CVar. 2018-03-27 17:58:25 +02:00
Christoph Oelckers
62f073ef60 - removed Accel2D variable and a little bit of locking cruft. 2018-03-27 17:13:10 +02:00
Christoph Oelckers
c06ad5c59c - separated DFrameBuffer from DCanvas.
This was a bad idea from the start and really only made sense with DirectDraw.
These days a FrameBuffer represents an abstract hardware canvas that shares nothing with a software canvas so having these classes linked together makes things needlessly complicated.
The software render buffer is now a canvas object owned by the FrameBuffer.

Note that this commit deactivates a few things in the software renderer, but from the looks of it none of those will be needed anymore if we set OpenGL 2 as minimum target.
2018-03-27 14:14:46 +02:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
f4d9ad1123 - extended FTexture::GetPixels and FTexture::GetColumn by a RenderStyle parameter.
Now it is no longer necessary to provide specially set up textures for rendering shaded decals, they can use any PNG texture now that contains a proper red channel.
Handling of the alPh chunk has been removed as a result as it in no longer needed.
2018-03-18 21:33:44 +01:00
Magnus Norddahl
a2b9a70835 - Fix crash when reloading a map 2018-03-17 00:09:43 +01:00
Rachael Alexanderson
07f168a58b - additional check for tween-tic particle rendering, prevents jitter with timefreeze powerup 2018-02-24 16:04:20 -05:00
Rachael Alexanderson
a441cea350 - interpolate particles 2017-12-28 11:36:36 -05:00
Magnus Norddahl
52be9895b7 - Disable softpoly models 2017-12-03 00:23:28 +01:00
Magnus Norddahl
d43ac8b9ae - Add model rendering to the software renderer 2017-11-27 23:47:26 +01:00
Christoph Oelckers
836970f012 - moved the matrix code out of 'gl' because the model code also needs it. 2017-11-25 13:51:09 +01:00
Magnus Norddahl
679f42db78 - Remove model GL dependencies except for the matrix classes 2017-11-25 13:00:44 +01:00
Magnus Norddahl
a120a4657e - Apply viewpoint roll 2017-11-24 22:03:46 +01:00
Rachael Alexanderson
1f00810f40 - re-doubled the model rotation code 2017-11-23 21:27:16 -05:00
Magnus Norddahl
00d7dd0c64 - Implement model rendering in softpoly 2017-11-24 00:39:10 +01:00
Magnus Norddahl
5532266b14 - Fix softpoly sprite positioning bug 2017-11-20 22:43:44 +01:00
Magnus Norddahl
e71e4b6dc8 - Improved transfer heights support in softpoly 2017-09-30 23:58:11 +02:00
Magnus Norddahl
0ee021a972 - Improve transfer heights support in softpoly 2017-09-29 05:23:17 +02:00
Magnus Norddahl
d7164ba4e1 - Don't apply dynamic light to fullbright sprites 2017-09-23 16:22:22 +02:00
Magnus Norddahl
f3ba92f03c - Add dynamic light to sprites 2017-09-23 14:14:59 +02:00
Magnus Norddahl
789214200c - Attenuated lights support 2017-09-23 02:27:39 +02:00
Magnus Norddahl
94a33229cc - Remove unused function argument 2017-09-22 00:56:14 +02:00
Magnus Norddahl
dd8a114bb8 - Initial dynamic light support for softpoly 2017-09-21 05:39:16 +02:00
Rachael Alexanderson
ac566f4a84 - fixed: PlayerSprite in softpoly was not calculated correctly. Sprite will now not go all sorts of crazy places when you enable alternative scaling or forced aspect modes. 2017-09-12 15:56:35 -04:00
Magnus Norddahl
70220fb4cc - Slightly improve softpoly opaque pass performance 2017-09-12 02:40:09 +02:00
Magnus Norddahl
0924cc3f0f - Fix crash when switching levels 2017-09-10 17:11:17 +02:00
Magnus Norddahl
4d671fb618 - Improve softpoly culling performance 2017-09-10 16:29:57 +02:00
Magnus Norddahl
5ab0f34aca - Don't draw 3d floor walls that have zero height or less 2017-09-10 02:18:07 +02:00
Magnus Norddahl
4706c56690 - Fix portals crashing softpoly 2017-09-10 02:17:18 +02:00
Magnus Norddahl
7a1274ab76 - Collect all PVS information first so that processing the individual sectors can be done on multiple threads 2017-09-07 00:34:09 +02:00
Magnus Norddahl
dd0bc02eec - Convert PolyTranslucentObject to be a base class for all the different forms of translucent objects to be drawn 2017-09-02 18:17:55 +02:00
Magnus Norddahl
23aebaecc6 - Cleaned up some copyright statements
- Removed unused cull argument from some functions
2017-09-02 17:14:02 +02:00
Magnus Norddahl
0f0cf7261e - Remove unused code 2017-09-02 15:02:06 +02:00
Magnus Norddahl
b80bf6930a - Translucent 3d floor plane support 2017-09-02 02:51:09 +02:00
Magnus Norddahl
393373a661 - Clean up plane rendering code slightly 2017-09-02 02:12:29 +02:00
Magnus Norddahl
fbaa3e7cb0 - Removed unused cull function argument 2017-09-02 01:34:36 +02:00
Magnus Norddahl
e851734b33 - Added translucent 3d floor walls support 2017-09-02 01:24:57 +02:00
Magnus Norddahl
b3916c1d01 - Add FF_UPPERTEXTURE and FF_LOWERTEXTURE support to softpoly 2017-09-02 00:35:48 +02:00
Magnus Norddahl
27dfebdb7d - Fix plane light levels used when a sector has a lightlist 2017-08-29 01:22:10 +02:00
Magnus Norddahl
293f62fcd2 - Striped wall (lightlist) support
- Add two extra clipping planes to poly backend
- Make ShadedTriVertex internal to drawer backend
2017-08-27 23:26:54 +02:00
Magnus Norddahl
8c146e4e71 - Transfer light support 2017-08-27 17:27:49 +02:00
Magnus Norddahl
45388d8a31 - Clip decals to the wall part 2017-08-27 17:18:39 +02:00
Magnus Norddahl
2f5535dbca - Fix HOM for Line_Horizon specials when used with a skybox 2017-08-19 14:32:34 +02:00
alexey.lysiuk
ec42e30614 Fixed compilation warning reported by Clang
src/polyrenderer/scene/poly_wall.cpp:166:15: warning: '&&' within '||' [-Wlogical-op-parentheses]
2017-08-19 11:18:52 +03:00
Magnus Norddahl
05ca52d693 - Fix texture coordinates for 3d floor walls 2017-08-19 00:53:41 +02:00
Magnus Norddahl
c144eefdad - Draw sloped 3d floors 2017-08-18 20:19:17 +02:00
Magnus Norddahl
8034793193 - Wrap midtex support 2017-08-17 23:14:02 +02:00
Magnus Norddahl
c2fa360bbc - Improve 3d floor and underwater rendering 2017-08-17 22:34:23 +02:00
Magnus Norddahl
7993ad987c - Fix texture coordinates for lines split into multiple segments in softpoly 2017-08-17 20:54:44 +02:00
Magnus Norddahl
3cf5fb45ae - Add camera extra light to flats 2017-08-17 00:28:58 +02:00
Magnus Norddahl
122c56f005 - Add fog boundary support to softpoly 2017-08-17 00:10:43 +02:00
Magnus Norddahl
fbd381988b - Fix wall UV scaling and offsetting bugs in softpoly 2017-08-16 22:26:05 +02:00
alexey.lysiuk
eb52088487 Fixed compilation warnings reported by Clang
src/gl/scene/gl_sprite.cpp:685:34: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/polyrenderer/scene/poly_sprite.cpp:297:34: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/swrenderer/scene/r_opaque_pass.cpp:975:35: warning: '&&' within '||' [-Wlogical-op-parentheses]
src/sound/mididevices/music_timiditypp_mididevice.cpp:548:30: warning: comparison of integers of different signs: 'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
2017-08-13 16:42:08 +03:00
Magnus Norddahl
6d6c25bb26 - Add sprite adjustment to softpoly 2017-08-13 01:10:33 +02:00
Magnus Norddahl
bf38fd57b0 - Replace subsector gbuffer in softpoly with a zbuffer 2017-08-12 15:16:31 +02:00
Rachael Alexanderson
b6c15b997a - added 'r_debug_disable_vis_filter' cvar for debug purposes, to show all objects regardless of their actor filter fields. 2017-07-29 17:03:43 -04:00
Rachael Alexanderson
91ff447a90 - fixed compile from last commit
- refactored the zscript hookup a bit, made it actually work
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
712d21e26a - implement per-renderer sprite hiding based on the actor's render feature flags
- hook the thing up to zscript (does not currently compile)
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
e1b4bb11ba Merge https://github.com/coelckers/gzdoom 2017-07-09 20:09:12 -04:00
Magnus Norddahl
ddd1b629c3 - Calculate globvis/r_visibility in r_utility and use it in GL and poly renderers 2017-07-09 19:01:34 +02:00
Rachael Alexanderson
a148212215 Merge commit 'f1ad42c' 2017-06-12 00:22:59 -04:00
Magnus Norddahl
3b8570003a - Improved softpoly sprite clipping 2017-06-10 11:16:58 +02:00
Magnus Norddahl
a0cc78d6aa - Fix softpoly wall clipping bug 2017-06-10 10:16:42 +02:00
Major Cooke
b86aed5b01 Added polysoft render support for PSPF_MIRROR. 2017-06-05 10:39:18 -04:00
Rachael Alexanderson
c18134dbd3 - r_vanillatrans: Cache the cache! Transform the function into a global variable and recheck at the start of D_Display 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
68b6f922f7 - Added auto-detection scheme for r_vanillatrans
It now works the following way:
(0) - Force off (ZDoom defaults)
(1) - Force on (Doom defaults)
(2) - Auto off (Prefer ZDoom defaults - if DEHACKED is detected with no ZSCRIPT it will turn on) (default)
(3) - Auto on (Prefer Doom defaults - if DECORATE is detected with no ZSCRIPT it will turn off)
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
2997f31f9f - removed ZDOOMADD and updated actors in question with ZDOOMTRANS 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
89b372cb01 - Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
01f88cfb16 - Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle 2017-06-04 12:30:35 +02:00
Magnus Norddahl
31125486ad - Improve line portal rendering somewhat 2017-05-14 08:55:30 +02:00
Magnus Norddahl
0a4f4aaffd - Stop using sqrt when calculating texture coordinates 2017-05-13 15:48:55 +02:00
Magnus Norddahl
7af11b1963 - Offset sky in softpoly by 180 degrees 2017-05-12 17:59:22 +02:00
Magnus Norddahl
5c6cbd17a1 - Move polyobj rendering to be handled as a special case in RenderPolyScene 2017-05-12 17:26:17 +02:00
Magnus Norddahl
f7d1a2a574 - Add polyobj support to softpoly 2017-05-12 14:05:32 +02:00
Magnus Norddahl
9011f0ed5b - Fix texture coordinates for sloped walls 2017-05-06 18:44:06 +02:00
Magnus Norddahl
aca628acaf - Improve wall texture coordinates in softpoly 2017-05-06 15:48:04 +02:00
Magnus Norddahl
5c1dc900e3 - Slightly improve sky rendering in softpoly 2017-05-06 01:43:05 +02:00
Magnus Norddahl
4fcea96a1c - Improve softpoly sky rendering a little bit 2017-05-05 03:27:22 +02:00
Magnus Norddahl
17108e575a - Add support for drawing decals on 3d floors in softpoly 2017-05-02 22:24:32 +02:00
Christoph Oelckers
1ee9256842 - did a complete workover of the weapon sprite translucency code that got inherited from QZDoom.
This was very poorly done without ever addressing the issues a composite render style can bring, it merely dealt with the known legacy render styles.
The same, identical code was also present in two different places.
The oversight that AlterWeaponSprite overrode even forced styles was also fixed.

OpenGL is not implemented yet but with the problems eliminated should be doable now.
2017-04-15 16:41:00 +02:00