Commit graph

12960 commits

Author SHA1 Message Date
Christoph Oelckers
8a2e52d651 Removed gl_lights_checkside which essentially was just a pointless piece of cruft inherited from ZDoomGL. 2018-04-16 08:45:50 +02:00
Christoph Oelckers
f57c804a5a store shadow map index in the light actor instead of a separate TMap
This frees another file of a direct renderer dependency and generally also should be faster
2018-04-16 08:42:37 +02:00
Magnus Norddahl
4a3f7e8dd5 - fix missing fuzz initialization in softpoly 2018-04-16 01:15:55 +02:00
Magnus Norddahl
5b60a29d35 Merge branch 'master' of https://github.com/coelckers/gzdoom into gzdoom 2018-04-16 01:08:38 +02:00
Magnus Norddahl
f5c2ffabc9 - fix softpoly portal crash and blinking translucent objects 2018-04-16 01:08:29 +02:00
Christoph Oelckers
88f856d995 - fixed a y/Z mixup with the hardware renderer's vectors.
Why do they have to be different from what the game itself uses...? :(
2018-04-15 23:51:41 +02:00
Christoph Oelckers
dcefa3cd12 - GLSprite done, too. 2018-04-15 19:57:28 +02:00
Christoph Oelckers
ee1d1a29a6 - converted GLFLat list to use pointers as well.
- added copy constructors and assignement operators to GLFlat and GLWall so that they can use memcpy instead of field-by-field copy. This actually increases performance slightly.
2018-04-15 19:00:54 +02:00
Magnus Norddahl
d10aa10889 - fix missing psprite when camera textures are in view 2018-04-15 17:16:13 +02:00
Christoph Oelckers
d17216d7dd - fixed the translucent wall splitter, it forgot to copy the original wall before making adjustments to it and its copy. 2018-04-15 17:04:02 +02:00
Magnus Norddahl
21c2d38342 - fix softpoly canvas drawing not restoring all globals properly
- add null pointer check on camera
2018-04-15 16:05:29 +02:00
Magnus Norddahl
25784c2e57 - always store 255 in alpha channel for opaque things as the alpha channel is no longer ignored by the framebuffer backend (software drawer) 2018-04-15 14:58:19 +02:00
Magnus Norddahl
11bb626ab6 - always store 255 in alpha channel for opaque things as the alpha channel is no longer ignored by the framebuffer backend (softpoly drawer) 2018-04-15 14:47:53 +02:00
Magnus Norddahl
61032cb6ae - fix softpoly portal crash 2018-04-15 14:40:52 +02:00
Christoph Oelckers
e8eb8dd596 - store the wall render nodes as pointers, not as objects.
This is mainly for future-proofing because storing these as objects in an array not only has a negative impact when using multithreading due to longer blocking time for the threads but also makes it hard to cache this data for reuse.
2018-04-15 14:25:42 +02:00
Magnus Norddahl
e15baa21cb - Remove dead code 2018-04-15 12:21:40 +02:00
Christoph Oelckers
cf8447d19c -protected critical portal data from getting written to by user code.
This data is game critical and may only be altered by code that knows what is allowed and what not. It must never be altered by any user code ever.
However, since the SkyViewpoint actors need to set up some relations between themselves and the default sky portals the previously purely internal 'internal' flag has been exported as a new keyword.
2018-04-15 12:13:02 +02:00
alexey.lysiuk
4ea16acef5 Fixed broken portals after loading saved game
Portals disabled initially and activated by scripting must be fully restored after loading of saved game

https://forum.zdoom.org/viewtopic.php?t=59999
2018-04-15 10:52:02 +02:00
Christoph Oelckers
35596dbbc4 - brighten the textured automap when in the hardware renderer with light modes 0, 1 and 4. 2018-04-15 08:53:38 +02:00
Christoph Oelckers
515323dcbd - fixed: Rendering a translucent mid texture did not unset the render style for the following bottom texture.
With additive translucency and non-black fog this caused visual errors.
2018-04-15 08:29:40 +02:00
Christoph Oelckers
c03024e1b0 - fixed last commit 2018-04-14 22:34:25 +02:00
Magnus Norddahl
48b0fbcf4b - Remove r_swcanvas.cpp again. It got accidentally re-added somehow by the swmodels branch 2018-04-14 22:30:02 +02:00
Magnus Norddahl
b62d05ae0e Merge branch 'swmodels' into gzdoom 2018-04-14 22:23:27 +02:00
Magnus Norddahl
ee443b6fb6 - disable software models 2018-04-14 22:22:40 +02:00
Christoph Oelckers
71c8417578 - removed UniqueLineToLines because it wasn't used anywhere. 2018-04-14 21:24:48 +02:00
Magnus Norddahl
c3bd93a85c Merge remote-tracking branch 'gzdoom/master' into swmodels 2018-04-14 21:20:05 +02:00
Christoph Oelckers
790182a2f4 - split GLWall::PutWall in two. 2018-04-14 20:20:43 +02:00
Christoph Oelckers
59a08ce0df - fixed a few warnings and changed the return type of FGLTexture::Bind, because no caller needs the hardware texture. 2018-04-14 12:24:04 +02:00
Christoph Oelckers
0affc119fd - moved hardware independent part of flat vertex data out of GL folder. 2018-04-14 12:05:31 +02:00
alexey.lysiuk
ba4cc1a6ca Added activation type to WorldLine(Pre)Activated events
https://forum.zdoom.org/viewtopic.php?t=60232
2018-04-14 11:52:09 +03:00
alexey.lysiuk
83c513b6c9 Added names for arguments in DStaticEventHandler class definition 2018-04-14 11:52:09 +03:00
Christoph Oelckers
e654a99d39 - changed GLDebug to receive char pointers instead of FStrings.
The most frequent call using this is the regular texture creation function where this results in a pointless allocation and destruction of a temporary string which is easily avoided.
2018-04-14 10:40:11 +02:00
Christoph Oelckers
ad021cc374 - fixed: Hardware camera textures were given a dimension of (0, 0). 2018-04-14 10:26:56 +02:00
Christoph Oelckers
870890d8cf - r_clearcolor did not consider that the base palette's alpha is not set. 2018-04-14 09:33:45 +02:00
Christoph Oelckers
cef6ddca6e - fixed: Rendering to a camera textures clobbered the main render target for the software renderer. 2018-04-14 08:09:40 +02:00
Magnus Norddahl
915f8862a7 - Remove code that seemingly doesn't do anything and really shouldn't be needed 2018-04-13 21:56:34 +02:00
Magnus Norddahl
7e544c66fe Merge remote-tracking branch 'gzdoom/master' into swmodels 2018-04-13 21:35:21 +02:00
Christoph Oelckers
71a6cc4625 Merge branch '2D_Refactor' 2018-04-13 17:52:58 +02:00
Christoph Oelckers
81f72ca4dd Merge branch 'ZCompat2' 2018-04-13 17:52:02 +02:00
Rachael Alexanderson
a23259f26a - remove TLS workaround and turn it into an actual error since it is required in order to even properly compile and not all systems properly detect this. 2018-04-13 09:10:33 -04:00
Christoph Oelckers
387827555f - added compatibility handler for Alien Vendetta MAP01 to properly display the deep water hack and avoid problems with a node rebuild. 2018-04-11 23:08:59 +02:00
Christoph Oelckers
3aea82797c - removed the parser for complex compatibility settings, now that this can be done via scripting. 2018-04-11 19:21:02 +02:00
Christoph Oelckers
3988e27059 - scriptified the last remaining definition (BTSX MAP12 beta)
- Changes to map geometry must force a node rebuild (SetVertex, SetLineSectorRef.)
- fixed incorrect use of scaling constant in SetWallYScale.
2018-04-11 19:10:15 +02:00
alexey.lysiuk
6631f208b1 Scriptified remaining compatibility entries 2018-04-11 17:01:57 +03:00
alexey.lysiuk
950443683b Scriptified compatibility of more Heretic levels 2018-04-11 12:35:45 +03:00
Christoph Oelckers
0ecbf07769 -ported a large part of compatibility.txt 2018-04-10 23:19:22 +02:00
Christoph Oelckers
9daad477c3 - some improvements to compatibility scripts:
* use names, not strings, to allow use of switch/case.
* avoid creating the checksum a second time per level.
* do an early-out check for maps that do not have scripted compatibility.
2018-04-09 22:09:28 +02:00
alexey.lysiuk
03ffb30c39 Enabled custom window title in SDL backend 2018-04-09 20:47:49 +02:00
alexey.lysiuk
e6e2b11167 Set common name for system-specific framebuffer class
Implementation details are hidden as much as possible in platform-specific source files
Reduced number of included header files
2018-04-09 20:47:49 +02:00
alexey.lysiuk
640948703f Level compatibility via ZScript -- PoC 2018-04-09 17:54:12 +03:00
Christoph Oelckers
e50d09ceb2 - removed the render mode settings from the launch popup.
They were already deactivated because with 5 render modes present this was destructive, having only 2 options available.
Since the render mode can now be changed on the fly this isn't as critical anymore as it once was.
2018-04-08 22:03:38 +02:00
drfrag666
80f57dfaf0 - Increased size of the savegame comment area. 2018-04-08 21:56:35 +02:00
Marisa Kirisame
8ff81c93e8 Fix building on GCC7. 2018-04-08 21:53:20 +02:00
Marisa Kirisame
08f3afab0b Separated P_ActivateLine ZScript export into two functions, one with and one without a vector parameter. 2018-04-08 21:53:20 +02:00
Marisa Kirisame
5d0ff4c8ba Exports P_ActivateLine to ZScript (along with constants for activation type) 2018-04-08 21:53:20 +02:00
Christoph Oelckers
551691f42a - made FTexture::GetPixels and FTexture::GetColumn non-pure-virtual.
With the software renderer not being used for 2D anymore it would be quite annoying if every texture class had to implement these.
If done properly, the SW renderer should actually be forced to dynamic_cast any texture to a FWorldTexture before using this stuff, but that'd be some pointless overhead better saved.
2018-04-08 21:19:57 +02:00
Christoph Oelckers
3dc670a0cc - missed this. 2018-04-08 21:02:15 +02:00
Christoph Oelckers
3dcd7d310f Merge remote-tracking branch 'remotes/origin/master' into 2D_Refactor 2018-04-08 20:52:30 +02:00
Christoph Oelckers
7c70e0971c - disabled the survey code.
This survey is now closed and new input no longer needed.
2018-04-08 20:51:19 +02:00
Christoph Oelckers
e6ce429ca5 - fixed alpha for hardware rendered weapon sprites in the software renderer. 2018-04-08 20:40:29 +02:00
Christoph Oelckers
a40d85fd41 - fixed: Before aqcuiring the WipeEndScreen, the renderer must be flushed.
Apparently this got previously done implicitly by code that got lost in the refactoring.
2018-04-08 19:54:17 +02:00
Christoph Oelckers
17c18f3367 - fixed typo in texture search function. This caused the crosshairs not to be found. 2018-04-08 19:16:46 +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
4a730f6dd5 - Fix softpoly ignores status bar displacement 2018-04-08 14:28:48 +02:00
Magnus Norddahl
1a5f679d43 - Fix depth values when screenblocks less than 11 2018-04-08 13:45:23 +02:00
Christoph Oelckers
94e8d59dde - implemented shader support for rendering the SW renderer canvas with legacy OpenGL. 2018-04-08 13:05:20 +02:00
alexey.lysiuk
8cd3cf04e7 Fixed a few compilation warnings
src/gl/renderer/gl_renderer.cpp:775:39: warning: comparison of two values with different enumeration types ('F2DDrawer::ETextureDrawMode' and 'TexMode') [-Wenum-compare]
src/gl/renderer/gl_renderer.cpp:776:39: warning: comparison of two values with different enumeration types ('F2DDrawer::ETextureDrawMode' and 'TexMode') [-Wenum-compare]
src/gl/renderer/gl_renderer.cpp:777:39: warning: comparison of two values with different enumeration types ('F2DDrawer::ETextureDrawMode' and 'TexMode') [-Wenum-compare]
src/gl/renderer/gl_renderer.cpp:778:45: warning: comparison of two values with different enumeration types ('F2DDrawer::ETextureDrawMode' and 'TexMode') [-Wenum-compare]
src/gl/renderer/gl_renderer.cpp:779:40: warning: comparison of two values with different enumeration types ('F2DDrawer::ETextureDrawMode' and 'TexMode') [-Wenum-compare]
src/gl/renderer/gl_renderer.cpp:780:45: warning: comparison of two values with different enumeration types ('F2DDrawer::ETextureDrawMode' and 'TexMode') [-Wenum-compare]

src/v_draw.cpp:1144:51: warning: '&' within '|' [-Wbitwise-op-parentheses]

src/textures/texture.cpp:1050:20: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]

src\intermission\intermission.cpp(80): warning C4101: 'lumpnum': unreferenced local variable
2018-04-08 13:55:46 +03:00
alexey.lysiuk
018f5b8d05 Removed deleted virtual functions
They led to link errors with the current Apple's toolchain
2018-04-08 13:55:46 +03:00
alexey.lysiuk
5a4307160e Fixed compilation of SDL backend 2018-04-08 13:55:46 +03:00
alexey.lysiuk
1c89de25dd Fixed compilation of Cocoa backend 2018-04-08 13:55:46 +03:00
alexey.lysiuk
a434f9bc91 Added missing _access() macro for POSIX targets
src/textures/hires/hirestex.cpp:338:8: error: use of undeclared identifier '_access'
2018-04-08 13:55:46 +03:00
alexey.lysiuk
472fdb26ad Removed erroneous function declarations
src/r_data/gldefs.cpp:69:13: error: static declaration of 'ParseVavoomSkybox' follows non-static declaration
2018-04-08 13:55:46 +03:00
alexey.lysiuk
b8ee9d88ba Fixed non-constant condition for static assertion
GCC 7:
src/gl/renderer/gl_renderer.cpp:702:2: error: non-constant condition for static assertion
src/gl/renderer/gl_renderer.cpp:702:2: error: value ‘12’ of type ‘float*’ is not a constant expression
src/gl/renderer/gl_renderer.cpp:703:2: error: non-constant condition for static assertion
src/gl/renderer/gl_renderer.cpp:703:2: error: value ‘20’ of type ‘PalEntry*’ is not a constant expression

Clang:
src/gl/renderer/gl_renderer.cpp:701:16: error: static_assert expression is not an integral constant expression
src/gl/renderer/gl_renderer.cpp:701:23: note: cannot access field of null pointer
2018-04-08 13:55:46 +03:00
alexey.lysiuk
6144ca930d Fixed POSIX definition of rdtsc() function
src/stats.h:121:24: error: expected ';' after top level declarator
2018-04-08 13:55:46 +03:00
Christoph Oelckers
b12a6fded9 - added the code for legacy shaders.
- force texture filtering for 2D to off when in software rendering.
2018-04-08 12:11:51 +02:00
Christoph Oelckers
5eb898107f - now that all 2D is guaranteed to be drawn in true color, the Heretic E2 end pic can be handled with less hacks.
This removes the entire palette switch and all the special checks to ensure that no menu can be drawn over this image.
Instead it gives this texture its special palette in the texture manager so that the proper image is created right away.

I decided against exposing this as an editing feature because it is far too specific to this particular image and the raw page format it uses.
A quick check of /idgames shows no project ever replacing it - especially no ZDoom-based project - so no extended handling is needed to make this work with other texture formats.
2018-04-08 10:10:26 +02:00
Christoph Oelckers
1897073b60 -fixed: When performing a restart the SW scene drawer's resources should be reset because they are outside the control of higher level containers. 2018-04-08 08:03:46 +02:00
Magnus Norddahl
b1355d472c - Fix model projection matrix 2018-04-08 03:57:05 +02:00
Magnus Norddahl
7f25913b2d - Fix depth values written by sloped planes 2018-04-08 02:22:01 +02:00
Christoph Oelckers
0a2c415dbe - deleted some copypasted but ultimately unused definitions. 2018-04-07 23:52:46 +02: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
Magnus Norddahl
fde87c40d2 - fix crash when in software truecolor mode - the pitch is in pixels, not bytes 2018-04-07 19:56:54 +02:00
Christoph Oelckers
1fc1fac2c2 - added missing header. 2018-04-07 19:41:21 +02:00
Magnus Norddahl
c15328de2f - Remove include that shouldn't be there (also caused macOS builds to fail) 2018-04-07 19:35:32 +02:00
Christoph Oelckers
adbeb3f251 Merge remote-tracking branch 'remotes/origin/master' into 2D_Refactor 2018-04-07 18:50:24 +02:00
Christoph Oelckers
cd00f1fb45 - fixed incorrect check for SW texture recreation. 2018-04-07 18:41:25 +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
5fbc723842 - live switching of the renderer works. 2018-04-07 12:59:04 +02:00
Christoph Oelckers
221beec979 - added palette shader and fixed a few things. 2018-04-07 12:17:23 +02:00
alexey.lysiuk
cb3650ed9e Added message for absent explicitly referenced dialog file 2018-04-07 12:52:38 +03:00
alexey.lysiuk
3239a9eaa6 Added loading of ZSDF lumps by full paths
https://forum.zdoom.org/viewtopic.php?t=60139
2018-04-07 12:43:10 +03:00
Christoph Oelckers
211a7f2569 - made the screen blend work for the software renderer.
It may use the same calculations as the hardware renderer but must use the 2D drawer for display.
It should be investigated if the hardware renderer can do this as well.
2018-04-07 10:53:20 +02:00
Christoph Oelckers
b34d7f9e08 - added a software scene drawer to the GL renderer.
It still looks like shit and only works on the modern render path but at least the basics are working.
2018-04-07 10:20:59 +02:00
alexey.lysiuk
7bd281ddc9 Added zero initialization of implicit dynamic array items
https://forum.zdoom.org/viewtopic.php?t=60111
2018-04-05 12:22:41 +03:00
Magnus Norddahl
b1d33d1bba - Fix mid texture rendering for self-referencing sector lines 2018-04-05 01:40:58 +02:00
alexey.lysiuk
b6f184491b Restored vanilla behavior of lightning for original Hexen
https://forum.zdoom.org/viewtopic.php?t=60103
2018-04-04 16:46:01 +03:00
alexey.lysiuk
2e7d196f8b Fixed crash when vid_setmode CCMD is used from command line
It's impossible to validate video mode at such early stage of initialization
Added sanity check for mode's width and height as well

https://forum.zdoom.org/viewtopic.php?t=59990
2018-04-04 11:46:14 +03: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
927b351174 - added missing validation to SetCameraToTexture ZScript function. 2018-04-03 23:01:15 +02:00
Christoph Oelckers
fcc33f0a09 - moved around more stuff from the FRenderer interface. 2018-04-03 22:50:47 +02:00