Commit graph

13297 commits

Author SHA1 Message Date
drfrag666
d8a1d1b89c - Missing formatting macro definitions for MinGW. 2018-06-18 20:57:52 +02:00
drfrag666
703d2bc0cd - Fixed missing include due to non conformant preprocessor in VS. 2018-06-18 20:57:52 +02:00
Christoph Oelckers
211bd0b1b0 Remove unnecessary check for the ending brace. 2018-06-18 08:51:33 +02:00
Christoph Oelckers
243787d19a Fixed: End of file detection in MAPINFO parser was not correct
It should check for the special "End" flag instead of trusting that if the last token was a closing brace, all was correct. This can fail if the last token in a multiline string is a brace.
2018-06-18 08:26:14 +02:00
Erick Tenorio
c91d4750f3 Save item statistics
Items are now saved into save games and are displayed on the statfile
2018-06-18 00:24:23 +02:00
Magnus Norddahl
bce49ad7c8 - fix Software models don't display over nonexistent sprites 2018-06-17 14:56:34 +02:00
alexey.lysiuk
832de42c24 - prevented crashes caused by inconsistent status bar
Incorrectly initialized or deliberately broken status bar could lead to integer division by zero and null pointer dereference

class BuggyStatusBar : DoomStatusBar
{
    override void Init()
    {
        // No super.Init()
    }
}
2018-06-17 14:39:42 +03:00
alexey.lysiuk
f2918b748f - deleted leftover declaration in Cocoa backend 2018-06-17 14:39:05 +03:00
Christoph Oelckers
1455111ddc - removed unused declarations. 2018-06-14 22:57:08 +02:00
Christoph Oelckers
612fb40f3a - don't use uniforms related to fixed colormaps for other things.
The fixed colormap is a per-scene global setting that normally does not need to change ever during rendering of a scene so it's easily shoved aside into a static uniform buffer.
Having to change this buffer for inconsequential stuff should be avoided, especially when there's other uniforms that are just as good to hold these values.
2018-06-14 21:28:03 +02:00
alexey.lysiuk
0643b2b1aa - updated list of headers for CMake generated projects 2018-06-14 15:11:36 +03:00
alexey.lysiuk
19ca416d09 - fixed compilation with GCC and Clang
error: no template named 'unique_ptr' in namespace 'std'
2018-06-14 15:10:49 +03:00
Christoph Oelckers
2f4c2e0425 - fixed some includes which did not cause VC++ to error out. 2018-06-13 23:32:43 +02:00
Christoph Oelckers
9a7f9bdb4c - moved postprocessing shader classes to hwrenderer after removing all dependencies on OpenGL. 2018-06-13 22:37:01 +02:00
Christoph Oelckers
3401876476 - use FShaderProgram through an abstract interface and remove all dependencies on the GL renderer from the shader definition source files. 2018-06-13 22:08:55 +02:00
Christoph Oelckers
8bf009bd89 - added a RenderQueue parameter to all Bind functions of the postprocessing shaders. This is unused for now. All places calling these pass a dummy NOQUEUE value which is just a nullptr.
This is for Vulkan preparation where all of this needs to run in a user-specified context so that this code can be moved out of the GL folder without depending on OpenGL's global state model.
2018-06-13 20:30:51 +02:00
Christoph Oelckers
0b9eaac5e1 - fixed SSAO shader texture assignments. 2018-06-13 19:04:19 +02:00
Christoph Oelckers
ce50b0e46b - read sampler bindings from the shader instead of tagging along a large amount of support data.
Works for most shaders, except SSAO.
2018-06-13 17:44:49 +02:00
Christoph Oelckers
59827cd601 - use layout binding qualifiers on uniform buffers when GLSL version >= 4.2
This has no performance benefits but allows checking shader generation correctness without having to implement Vulkan first.
2018-06-13 13:16:07 +02:00
Christoph Oelckers
d2dea17e81 - specify vertex attributes in the shader source for Vulkan compatibility. 2018-06-13 08:40:04 +02:00
Christoph Oelckers
ad7aaa8f2a - specify fragment output locations in the shader source.
OpenGL has been supporting this since version 3.3 and Vulkan requires it so it's the way to go.
2018-06-12 23:52:33 +02:00
Magnus Norddahl
832e7818c8 - rewrote the blur shader so that it works the same way as the rest 2018-06-12 22:14:44 +02:00
Christoph Oelckers
cb5caa757b - moved ShaderUniforms to hwrenderer/ . 2018-06-12 22:08:31 +02:00
Christoph Oelckers
f166624eb2 - some fixes to the PP shader interface.
The binding point needs to be part of the ShaderUniforms class because Vulkan will need this value to generate the declaration in the shader source.
There's still one issue here: Since OpenGL has no local render state, the buffer must be bound every time it is used. Once the code is better abstracted this should be moved to a higher level class that knows all associated data and how to set it up.
2018-06-12 21:43:35 +02:00
Christoph Oelckers
4ddd9dde79 Use IUniformBuffer 2018-06-12 17:55:34 +02:00
Christoph Oelckers
20e84fff5a - fixed crash with GL 3.x and fixed colormap active.
This must skip all light processing. On GL 4.5 it will only collect useless data but on GL 3.x it will run into an unmapped buffer situation.
2018-06-12 17:55:20 +02:00
Christoph Oelckers
6fced1865f Moved ScopedViewShifter to hwrenderer/ . 2018-06-12 14:47:05 +02:00
Christoph Oelckers
f33ddd8cce Made the ScopedViewShifter fully inline 2018-06-12 14:44:58 +02:00
Christoph Oelckers
5a20de829b fixed compiler warning 2018-06-12 10:59:17 +02:00
Christoph Oelckers
3385e28611 Make it compile 2018-06-12 10:58:32 +02:00
Christoph Oelckers
b8b5802599 Added a uniform buffer abstraction class
May get some more methods later, this is just a start to get going.
2018-06-12 10:42:03 +02:00
Magnus Norddahl
9155b773cc - change ShaderUniforms so that it just contains the uniform block and not the binding point 2018-06-11 22:33:55 +02:00
Magnus Norddahl
49073489e5 - uniform buffers for the fxaa, blur and bloom shaders 2018-06-11 22:06:46 +02:00
Magnus Norddahl
48f753061a - uniform buffers for the present and shadowmap shaders 2018-06-11 21:42:09 +02:00
Magnus Norddahl
6fcc79d72a - uniform buffers for the tonemap shaders 2018-06-11 21:18:20 +02:00
Magnus Norddahl
2bde741a7e - Uniform buffer for colormap shader 2018-06-11 21:03:55 +02:00
Magnus Norddahl
d22fb24e28 - Uniform buffers for lens shader 2018-06-11 20:58:20 +02:00
Magnus Norddahl
763c5c9769 - change ssao pass to use an uniform block 2018-06-11 20:48:43 +02:00
alexey.lysiuk
29d2e77840 - fixed portal restoration on revisiting level in hub
Added function to FLevelLocals to test if map is being reentered

https://forum.zdoom.org/viewtopic.php?t=60455
2018-06-11 11:55:49 +03:00
Christoph Oelckers
bd1525eb9d - fixed: ADynamicLight's shadowmap index must be reset when loading a savegame. 2018-06-10 22:57:34 +02:00
Magnus Norddahl
a91147a3a5 - move DrawArray and DrawElements to PolyTriangleDrawer 2018-06-10 15:58:01 +02:00
Magnus Norddahl
9ba26a5ece - add support for using FModelVertex as input to the softpoly vertex shader 2018-06-10 15:29:31 +02:00
Magnus Norddahl
c9fd52340e - add GroupMemoryBarrierCommand 2018-06-10 13:35:15 +02:00
Magnus Norddahl
efa434d47b - remove unused VectoredTryCatch 2018-06-10 13:15:31 +02:00
Magnus Norddahl
628f6c32d9 - remove unused DrawerCommand::DebugInfo 2018-06-10 12:54:37 +02:00
Magnus Norddahl
de67393b4e - use the worker threads to clear the stencil buffer 2018-06-10 12:42:19 +02:00
Christoph Oelckers
8486cd2c0e - fixed generation of brightmaps for sprites.
This forgot to take the added empty border for filtering improvement into account.
2018-06-10 08:22:07 +02:00
Rachael Alexanderson
77956fc485 - remove ARM specific gl_es definition since it's not even really much different from the main line definition, anyhow 2018-06-09 13:40:39 -04:00
Christoph Oelckers
ae1fe041ee - ZScript used the wrong variable for compatflags2.
ii_* is merely the storage for info from the compatibility.txt lump.
2018-06-09 17:59:21 +02:00
alexey.lysiuk
4a1f36623b - fixed: flag CVars in ZScript referenced wrong addresses 2018-06-09 17:21:55 +03:00
Magnus Norddahl
85f5f897d7 - enable model rendering in the software renderer 2018-06-09 12:29:33 +02:00
Christoph Oelckers
1fdcacc337 - redirect script access to the compatflags CVARs to their internal shadow variables.
This is needed so that MAPINFO settings for these flags don't get ignored.
2018-06-08 22:55:44 +02:00
Christoph Oelckers
a312f5a7c1 - update version info. 2018-06-07 00:04:53 +02:00
Magnus Norddahl
2abf700c29 - fix missing include 2018-06-06 00:30:59 +02:00
Magnus Norddahl
5464d2a577 - add dynamic lights to softpoly and software renderer models 2018-06-05 22:43:11 +02:00
Magnus Norddahl
61f379c88f - fix null pointer crash in softpoly 2018-06-05 22:42:21 +02:00
Christoph Oelckers
2baed338f7 - flat rendering must check for missing vertex buffer data. 2018-06-05 21:44:38 +02:00
Christoph Oelckers
60b6dbadb2 - fixed autoaiming for unranged attacks.
The abort condition for the extended checks must completely stop any further processing but the check for this was missing.
2018-06-05 20:35:01 +02:00
Magnus Norddahl
f5386a706f - fix software renderer dynamic lights not working properly in mirrors 2018-06-05 20:09:02 +02:00
Magnus Norddahl
b74a9965b8 - draw models in mirrors and portals at the right location in the software renderer 2018-06-05 19:36:57 +02:00
Marisa Kirisame
477cf23fd2 Adds "OnGiveSecret" virtual function on Actor for customizing behavior of secret finding. 2018-06-05 10:06:53 -04:00
Magnus Norddahl
674b6ee85c - avoid using global variables in the inner fuzz drawer loop 2018-06-05 15:43:03 +02:00
Magnus Norddahl
51fd715404 - fix dynlight color not being applied on sprites 2018-06-05 15:32:27 +02:00
Magnus Norddahl
9cd751ae7a - fix softpoly colored fog bug in the new drawers 2018-06-05 15:16:04 +02:00
alexey.lysiuk
7009755c52 - fix crash on dying when player class has no death states
https://forum.zdoom.org/viewtopic.php?t=60815
2018-06-05 11:06:31 +03:00
Marisa Kirisame
fae514f30d BLOCKASPLAYER flag: treat non-player actors as blockable by "block players" lines 2018-06-04 22:18:51 +02:00
Christoph Oelckers
2f6dc46f14 - fixed FMemArena to always return 16 byte aligned pointers.
Unfortunately this turned out harder than expected because of FSharedStringArena making some strong assumptions about the underlying implementation.
2018-06-04 21:51:16 +02:00
Christoph Oelckers
af3d17af8b Revert "- fix memory arena allocation alignment for 32 bit systems."
This reverts commit 23fce56b5e.

This did not do what it was supposed to because of how the block header was created.
2018-06-04 21:51:16 +02:00
Rachael Alexanderson
780ddd21bd - fixed - sector sounds were not translated through portal groups properly 2018-06-04 13:10:58 -04:00
Magnus Norddahl
e3c78ab838 - use a light array to simplify inner light math 2018-06-04 00:36:14 +02:00
Magnus Norddahl
97f4cc1951 - use affine dynlights in softpoly 2018-06-03 22:24:44 +02:00
Christoph Oelckers
d18f5eecb4 - Fixed: Dehacked must not validate parameters for MBF special functions.
These won't match the conditions.
Additionally this adds disassembly output for the synthesized replacement functions for diagnostics purposes.
2018-06-03 19:28:16 +02:00
Magnus Norddahl
d425fb2d4a - replace the old rect drawers with new ones based on render styles 2018-06-03 18:36:37 +02:00
Christoph Oelckers
23fce56b5e - fix memory arena allocation alignment for 32 bit systems. 2018-06-03 18:20:50 +02:00
Christoph Oelckers
a851a5d151 - fixed: For melee attacks with a short attack range P_AimLineAttack must check for hits from above and below.
This is necessary to be in line with P_LineAttack which does check for those.
2018-06-03 17:49:00 +02:00
alexey.lysiuk
352f93c066 - deleted now useless code from Cocoa backend
Let's rely on cross-platform code to manage window dimensions and screen resolution
2018-06-03 17:48:58 +03:00
alexey.lysiuk
f8f1148c59 - fixed mouse cursor positioning in menu for Cocoa backend
With video resolution scaling enabled engine coordinates of mouse cursor were wrong
2018-06-03 17:48:58 +03:00
alexey.lysiuk
b5274534d7 - fixed linking with sanitizer(s) enabled
no more unresolved references to various functions
2018-06-03 16:05:14 +03:00
Marisa Kirisame
f74e74ac4b Mirroring should be flipped on HUD models since the view to world space transform already inverts one axis 2018-06-03 14:20:42 +02:00
Magnus Norddahl
f03c02df43 - fix gamepic render buffer issues 2018-06-03 13:59:40 +02:00
Marisa Kirisame
dea1d0259d Swap front face culling for GL model drawer (CCW should be the default).
Added mirroring handling to software models.
2018-06-03 07:26:55 +02:00
Magnus Norddahl
a186677092 - removed the 8x8 block drawing code from softpoly 2018-06-03 01:44:56 +02:00
Christoph Oelckers
d0aacd3ba8 - fixed: The translucent border draw list must be rendered with depth writing active.
This gets exclusively used by portal borders which means that for walls the setting is irrelevant but for flats it is needed to cover the portal surface so that translucent parts of the outer scene do not bleed through.
2018-06-02 23:09:51 +02:00
Magnus Norddahl
0dbcdc8a9c - fix negative rotation speed not working 2018-06-02 20:35:51 +02:00
Christoph Oelckers
94d1a73ae8 - pass mirroring info to model drawers.
Actual evaluation only implemented in OpenGL. Not tested yet because the bug report had no testable example.
2018-06-02 13:07:47 +02:00
Christoph Oelckers
decea97a34 - use a linear light ramp on the textured automap for light modes 0 and 1. 2018-06-02 12:34:21 +02:00
Christoph Oelckers
0c5a47ac90 - fixed: MF3_DONTSPLASH disabled all terrain effects, not just the splash.
Untested for now because the report came without any example to check it with.
2018-06-02 12:10:44 +02:00
Marisa Kirisame
58f4af6ded Transform UE1 vertex coords to GZDoom's when importing, rather than leaving it up to the end user. 2018-06-02 10:00:31 +02:00
alexey.lysiuk
81f042f08b - fixed compilation with Clang and GCC
src/gl/scene/gl_flats.cpp:215:3: error: cannot jump from this goto statement to its label
src/r_data/models/models.cpp💯18: error: no member named 'floor' in namespace 'std'
2018-06-02 09:43:33 +03:00
Christoph Oelckers
7d515e72c2 - fixed: FxFloatCast must transfer the outer expression's value type to the inner expression if it performs a float->float cast.
This violated an important rule that a cast may not alter the expression's type and led to failed asserts elsewhere.
2018-06-02 07:50:23 +02:00
Christoph Oelckers
058c5426cd - fixed: OpenGL2 should not use the precalculated vertex buffer data for flat rendering.
This wasn't set up properly anymore because the new index-based buffer code is not efficient on GL2, but the render function forgot to skip the buffer checks and jump right to the fallback path.
2018-06-02 07:25:41 +02:00
Magnus Norddahl
359b13b783 - fix rotationSpeed being ignored after the model interpolation fix 2018-06-01 20:48:24 +02:00
alexey.lysiuk
7b619bc78c - fixed crash with legacy render path
https://forum.zdoom.org/viewtopic.php?t=60727
2018-06-01 12:28:27 +03:00
alexey.lysiuk
edabe43bca - fixed typo in previous commit
https://forum.zdoom.org/viewtopic.php?t=60739
2018-06-01 12:24:29 +03:00
Christoph Oelckers
2d50f535ff - fixed and simplified the vertex counter for wall polygons.
This is now allowed to overestimate the number of vertices to reduce computation time for a rarely occuring special case that was eating most of the time and was causing errors with some walls.
2018-05-31 22:14:57 +02:00
alexey.lysiuk
bff2c8cf74 - limited length of server CVAR name to 63 characters
Due to limitation of network protocol server CVARs with longer names cannot propogate changes of their values properly

https://forum.zdoom.org/viewtopic.php?t=60729
2018-05-31 10:29:58 +03:00
alexey.lysiuk
0546c86716 - fixed Windows XP compatibility for MSVC 2017 targets
Workaround initially implemented for MSVC 2015 is enabled with all Windows XP compatible toolsets regardless of Visual Studio version

https://forum.zdoom.org/viewtopic.php?t=60675
2018-05-31 10:24:16 +03:00
alexey.lysiuk
4f5911da21 - fixed rendering of environment map on mirrors
With temporarily mapped buffer this feature seems to never work correctly
With persistently mapped buffer it was broken in 9a1603b246
2018-05-30 15:46:53 +03:00
Magnus Norddahl
4e6226fc2d - replace softpoly block drawers with span drawers and make them use blending rules directly from render styles
- add dynlights to softpoly pal mode
2018-05-29 23:32:57 +02:00
Magnus Norddahl
ac207cce85 Merge branch 'master' of https://github.com/coelckers/gzdoom into gzdoom 2018-05-29 23:30:38 +02:00