Commit graph

689 commits

Author SHA1 Message Date
Magnus Norddahl
a8d1197ea7 Make sure we never pass a negative value to pow, and optimize gamma uniform 2016-08-16 00:01:18 +02:00
Magnus Norddahl
a03b2ff48b Change render buffers from RGBA16F to RGBA16 2016-08-15 23:51:49 +02:00
Christoph Oelckers
ac80ffcc00 - fixed scissor calculations in 2D drawer. 2016-08-15 08:53:49 +02:00
Christoph Oelckers
e03696a6c9 - fixed: The model matrix must be disabled right after rendering the sky dome, so that it won't get used for the skyfog layer. 2016-08-14 20:11:46 +02:00
Christoph Oelckers
4e8a96aa0e - removed FRenderState::set2DMode because it had no effect. This looks like development garbage from old times. 2016-08-14 09:14:26 +02:00
Magnus Norddahl
f8cc56ea3a Move SetOutputViewport to OpenGLFrameBuffer::Update as it cannot be safely called from Begin2D 2016-08-14 09:05:54 +02:00
Magnus Norddahl
fd4422eb62 Restore bound texture when FGLRenderBuffers::Setup finishes 2016-08-14 09:05:53 +02:00
Magnus Norddahl
94b72d25e9 First render may not have known scene dimensions 2016-08-14 09:05:52 +02:00
Magnus Norddahl
af62352860 Fix uninitialized data in render buffers at creation 2016-08-14 09:05:52 +02:00
Magnus Norddahl
847d2e8862 Fix viewport not being updated when resizing window when no scene is active 2016-08-14 09:05:51 +02:00
Magnus Norddahl
647ef5d029 Fix blur shader to use RenderScreenQuad 2016-08-14 09:05:50 +02:00
Magnus Norddahl
210fce1193 Fix bloom shader missing its target 2016-08-14 09:05:50 +02:00
Magnus Norddahl
4ecb77385d GetScreenshotBuffer bug fix 2016-08-14 09:05:49 +02:00
Magnus Norddahl
d5b122b092 Fix GetScreenshotBuffer grabbing from wrong location 2016-08-14 09:05:48 +02:00
Magnus Norddahl
c817979eae Remove GetTrueHeight from GL renderer and concentrate all viewport calculations in SetOutputViewport 2016-08-14 09:05:48 +02:00
Christoph Oelckers
353a464f5b - fixed: The 2D texture drawer did not reset the render state's color so any previously set desaturation would persist. 2016-08-13 22:15:00 +02:00
Christoph Oelckers
0fdd80eae7 - removed debug Printf. 2016-08-10 16:32:31 +02:00
Christoph Oelckers
0e5a3ebe50 - fixed bad function call in vertex buffer init code. 2016-08-10 00:35:42 +02:00
Christoph Oelckers
56a60ebe85 - restored a line that got accidentally deleted. 2016-08-08 20:47:54 +02:00
Christoph Oelckers
e5f88a9883 - fixed: The textured automap was not using correct light levels.
In order for the externally passed vertex attribute to work the buffer's color attrib array needs to be disabled for these.
2016-08-08 16:18:07 +02:00
Christoph Oelckers
675822004d - use static buffer data and a uniform to handle the texture positioning of the present shader.
That's again one less write access to the buffer. The uniform method was chosen because this way a buffer update can be completely avoided, and setting a single uniform is a lot cheaper and simpler to handle.
2016-08-08 16:06:02 +02:00
Christoph Oelckers
8daaf61160 - predefine the vertex data for the blend overlay which will never change throughout the lifetime of the GLRenderer object. 2016-08-08 14:24:48 +02:00
Christoph Oelckers
9c9edbffdb - on older ATI drivers where the clip planes are broken, only disable the clip planes themselves, but not OpenGL 3.x so that dynamic lights still work as intended.
- only disable clip planes on Windows, but not on Linux or macOS.
- If a driver reports full OpenGL 4.5 support, assume that all features are working properly.
2016-08-08 12:55:09 +02:00
Magnus Norddahl
2ac91f0c5a Fix Nvidia driver ignoring wglSwapIntervalEXT 2016-08-08 12:22:40 +02:00
alexey.lysiuk
9ab9548723 Additional fix for splitting of complex wall in compatibility renderer
warp 2720 -200 -32 on Extreme Terror
https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/exterror
2016-08-08 12:19:37 +02:00
Christoph Oelckers
def3ad7533 - refactored all 2D drawing to use its own vertex buffer which does not need to be mapped permanently. 2016-08-08 12:13:09 +02:00
Magnus Norddahl
d4615861ae Fix missing FGLRenderBuffers::IsEnabled checks 2016-08-07 00:41:17 +02:00
Christoph Oelckers
04c59b434b - renamed WipeVertexBuffer to FSimpleVertexBuffer because this will be useful elsewhere, too. 2016-08-07 00:40:31 +02:00
Christoph Oelckers
8f0629932d - ImmRenderBuffer is not needed anymore. 2016-08-06 14:29:21 +02:00
Christoph Oelckers
6a66d0255d - use a dedicated vertex buffer for rendering the wipes.
- fixed: The postprocessing shaders clobbered the render state's vertex buffer info by bypassing and not notifying it of the change.
2016-08-06 14:12:40 +02:00
Christoph Oelckers
7576e85cef - force use of shaders on all hardware, unless -noshader is specified.
Right it's only for easy testing, so only the code that does the feature checking has been disabled.
2016-08-06 13:06:55 +02:00
Christoph Oelckers
2e555e6dab - use client arrays on compatibility profiles instead of calling glBegin/glEnd.
This eliminates most behavioral differences for FFlatVertexBuffer between both operating modes, now the only difference is where the buffer is located.
2016-08-06 12:03:16 +02:00
Magnus Norddahl
346badf25f Moved state to FGLPostProcessState and merged vertex shaders 2016-08-06 11:51:08 +02:00
Christoph Oelckers
13a2bf57e5 - fixed vertex coordinate ordering for the sky cubemap.
This was done differently for FFlatVertex and FSkyVertex which caused a switch of the y and z coordinates for the skybox image.
2016-08-06 11:47:03 +02:00
Christoph Oelckers
5b201287fa - fixed bad #pragma pack combination in hqnx_asm_Image.h 2016-08-05 15:27:35 +02:00
Christoph Oelckers
13527fdd0a Merge branch 'lensshader' of https://github.com/dpjudas/zdoom 2016-08-05 00:58:14 +02:00
Magnus Norddahl
976a78429e Simplify post process buffer handling 2016-08-04 17:16:49 +02:00
Magnus Norddahl
6fc7596d52 Fix aspect ratio and texture clipping in lens shader 2016-08-04 15:47:15 +02:00
Christoph Oelckers
21536781a9 - forgot to save this. 2016-08-04 13:01:42 +02:00
Christoph Oelckers
63ad7d99d1 - fixed: The dynamic light buffer's behavior needs to obey the gl.lightmethod variable, and not depend on presence of persistently mapped buffers.
Since there is a command line switch to revert to the lower behavior it can well be that they do not match.
2016-08-04 12:55:21 +02:00
Christoph Oelckers
7ba6269450 - changed rendering of sky cubemaps to use precalculated vertex data from the SkyVertexBuffer. 2016-08-04 12:16:53 +02:00
Magnus Norddahl
6b9529d70f Added lens distortion shader 2016-08-02 17:32:21 +02:00
Magnus Norddahl
43e577ce79 Merge remote-tracking branch 'gzdoom_upstream/master' into postprocess_vbo_bind_fix
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
2016-08-02 10:00:53 +02:00
Magnus Norddahl
5a67ae6021 Fix missing VBO bind calls 2016-08-02 00:27:01 +02:00
Magnus Norddahl
f980a1f42b Fix wrong UV calculations when resizing or maximizing window 2016-08-01 15:12:13 +02:00
Christoph Oelckers
8aebfdb3ab - fixed: gl_bloom_amount may never be 0. 2016-08-01 11:29:28 +02:00
Magnus Norddahl
e8c98a5901 No gamma and player sprites on screenshots 2016-07-31 16:56:41 +02:00
Magnus Norddahl
7709db4bb0 Fix broken viewport/backbuffer location for WriteSavePic 2016-07-31 16:23:21 +02:00
Magnus Norddahl
a6354c74cf Fix incorrect viewport location when not using fullscreen HUD 2016-07-31 13:23:49 +02:00
Christoph Oelckers
20f4975e2b Merge branch 'blurshader_120_fix' of https://github.com/dpjudas/zdoom 2016-07-31 09:17:28 +02:00
Magnus Norddahl
849e80074e Added GLSL 120 fallback support 2016-07-31 03:54:16 +02:00
Magnus Norddahl
b789aaa0eb Fix binding error that Nvidia didn't complain about but Intel on Mac does 2016-07-31 03:16:48 +02:00
Christoph Oelckers
c93204cace Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-07-30 22:09:56 +02:00
Christoph Oelckers
bc51e98612 Merge branch 'blackscreenfix' of https://github.com/dpjudas/zdoom 2016-07-30 20:28:41 +02:00
Magnus Norddahl
1682b02c67 Fix glBindSampler state messing up post processing shaders 2016-07-30 19:54:20 +02:00
Magnus Norddahl
cfc20d1198 Added multisample support to FGLRenderBuffers and added gl_multisample to the menus 2016-07-30 15:33:30 +02:00
alexey.lysiuk
7de242930a Removed obsolete gamma correct shader used on macOS only 2016-07-30 15:30:35 +03:00
Christoph Oelckers
b52d457146 Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-07-30 11:45:19 +02:00
alexey.lysiuk
e2a2d38a25 Removed redundant comparison in compatibility renderer
Clang no longer reports "warning: comparison of array 'this->tcs' not equal to a null pointer is always true"
2016-07-30 10:25:42 +03:00
Major Cooke
36705b0f04 Added GZDoom version of SpriteAngle and SpriteRotation. 2016-07-30 00:33:33 +02:00
Christoph Oelckers
f4cbde856b Merge branch 'bloom' of https://github.com/dpjudas/zdoom 2016-07-30 00:30:27 +02:00
Magnus Norddahl
9bfce5b6ea Moved post processing effects to its own file 2016-07-30 00:02:26 +02:00
Magnus Norddahl
5849c83028 Added bloom and tonemap to menus
Added gl_renderbuffers CVAR that disables render buffers
Added patch shader support to FShaderProgram
Added OpenGL 2 fallback support to render buffers
2016-07-29 21:31:20 +02:00
Magnus Norddahl
0efee85bd8 Added tonemapping and sector based exposure control 2016-07-29 00:36:43 +02:00
Magnus Norddahl
69f52cc898 Added bloom shaders 2016-07-27 21:50:30 +02:00
Christoph Oelckers
da1762ac2c - fixed: DoSetMapSection could cause a stack overflow on large maps. Made it iterative instead of recursive to avoid that. 2016-07-27 16:27:40 +02:00
Magnus Norddahl
e82c38e4f9 Update copyright and typo fix 2016-07-27 11:15:20 +02:00
Magnus Norddahl
aeb7df09de Added hardware gamma option and improved window handling on Windows 2016-07-27 11:15:19 +02:00
Christoph Oelckers
071485b22e - fixed: If the resulting render style, after all adjustments, is None for the weapon sprite, do not attempt to draw it at all. 2016-07-25 11:55:47 +02:00
Magnus Norddahl
41e959e102 Adds the last texture filter mode (trilinear min filter with nearest magnification) 2016-07-23 18:57:37 +02:00
Christoph Oelckers
54a120d612 - do not process subsectors if rendering a stacked sector portal and the clipper is set to 'blocked', i.e. no visible parts are present.
This solves the most severe occurences of sprites being drawn in front of a portal's contents. It is not a full fix, though, there's still some extreme cases where portals may glitch if some stuff gets between the camera and the actual portal area.
Normally this has to perform a full check of the subsector against the portal's camera-facing linedefs but that's too costly for those rare cases where it may be an issue.
2016-07-23 10:23:34 +02:00
Christoph Oelckers
d405cf5b7c - fixed: Before rendering a sector stack portal the clipper needs to be completely filled, if the view point's subsector is not inside the portal. If this is not done, some setups where a recursive look into the originating area is possible may exhibit some issues. 2016-07-23 09:47:14 +02:00
MajorCooke
35666f1e09 Fixed a nullptr crash with flatsprite actors. 2016-07-21 13:12:59 -05:00
Christoph Oelckers
c5db5dff99 - fixed a crash when initializing the GL portal data for an incomplete or inactive portal. Also did a bit of cleanup on this code, the 'delta' member was never used. 2016-07-16 12:45:49 +02:00
Christoph Oelckers
a2f56b6ef5 - This should have been part of an earlier commit, no idea why it wasn't saved... 2016-07-16 09:35:20 +02:00
Jordon Moss
1ef8057fa7 Updated SurfaceSkin to take the path property. 2016-07-16 09:30:26 +02:00
Jordon Moss
6014bde3d0 Renamed PushSpriteFrame to PushSpriteMDLFrame for consistency. 2016-07-16 09:30:26 +02:00
Jordon Moss
8bbc04a46f Fixed a minor typo in SurfaceSkin validity check. 2016-07-16 09:30:25 +02:00
Jordon Moss
b3b2eb42c6 Added SurfaceSkin MODELDEF property, allows overriding MD3 per-surface skins. 2016-07-16 09:30:25 +02:00
Christoph Oelckers
bc7b439dd0 - addressed: MDL_INHERITACTORPITCH got the direction of the rotation wrong. Fixed by deprecating this flag (and also MDL_INHERITACTORROLL) and introducing proper flags, named MDL_USE*. This not only resolves the issue but also elimintates the nonsensical INHERIT part of the names. 2016-07-16 09:10:18 +02:00
Christoph Oelckers
f4b80a451e - fixed: The render style specific blend settings were overridden when adding code to ensure proper setup of all properties.
It turned out that the only thing that wasn't set is the alpha function, not the blend settings themselves.
2016-07-16 08:57:48 +02:00
MajorCooke
e56196eb1a Disable facing camera rotations if the actor is a flat/wall sprite.
- It not only looks bad, it also throws off users when trying to make perfectly aligned images since the plane is distorted wildly.
2016-07-13 09:31:22 +02:00
MajorCooke
cc8d84cd5d Fixed sprites defaulting to rotate around the center instead of the offsets. Seeing how it's still useful however, ROLLCENTER can still be used to center upon actors that are offsetted like monsters. 2016-07-13 09:31:22 +02:00
Christoph Oelckers
6b0b7ea049 - fixed sprite z coordinate calculation for flatsprites. 2016-07-04 01:00:01 +02:00
Christoph Oelckers
cc784fff14 Merge branch 'rollGZ2' of https://github.com/MajorCooke/zdoom 2016-07-04 00:45:37 +02:00
alexey.lysiuk
924b8105c5 Fixed splitting of complex walls in compatibility renderer
Example: +warp 2720 -200 -32 on Extreme Terror
https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/exterror
2016-06-29 12:34:35 +02:00
alexey.lysiuk
e6a7db99e4 Fixed missing polyobjects in compatibility renderer 2016-06-29 12:23:16 +02:00
alexey.lysiuk
fc8eaab57b Fixed crash in dynamic lights compatibility renderer
Reproduces using -iwad plutonia -file brutalv20b.pk3 +map map07
2016-06-29 12:21:39 +02:00
Christoph Oelckers
17c212d5bc - disable transparent door render hacks if any of the involved sectors contains floor slopes.
These lead to false positives but rarely represent actual hacks.
2016-06-29 12:19:00 +02:00
alexey.lysiuk
2813a22740 Fixed inconsistent state of lights in compatibility renderer 2016-06-19 11:19:31 +03:00
Christoph Oelckers
7b99c883e1 - use the exact same semantics and methods to handle player visibility as in the software renderer.
This fixes invisible player sprites in recursive line portals.
2016-06-18 12:14:20 +02:00
Christoph Oelckers
87d27b8db3 - fixed some crash issues with recent changes. 2016-06-18 10:01:24 +02:00
Christoph Oelckers
92e2ce2aef - adjustments for weapon rendering in GL.
This adds support for the new weapon state code and fixed some lighting calculations.
Note that this currently will not allow combination of HUD models with other sprite frames yet.
2016-06-17 17:21:42 +02:00
Christoph Oelckers
8ca07443f1 - fixed: Sprite splitting at 3D floors must set the fog parameters for the new light level. 2016-06-17 16:16:31 +02:00
MajorCooke
b2d2389343 Fixed: Slanted flat + roll sprites didn't take DONTFLIP into account. 2016-06-05 15:51:23 -05:00
MajorCooke
e58c6de7d6 DONTFLIP flag prevents the backside from flipping over. 2016-06-05 15:14:40 -05:00
alexey.lysiuk
56ce6abbc2 Fixed splitting of walls in compatibility renderer
Any wall adjacent to 3D floor sector were not rendered at all
2016-06-05 12:38:23 +03:00
Christoph Oelckers
5017a192eb - fixed: The texture matrix was not reset after drawing the texture pass for multipass textured dynamic lights. 2016-05-19 12:22:39 +02:00
Christoph Oelckers
13da14e915 - disable dynamic lights on additively blended surfaces because it doesn't look good at all. 2016-05-18 22:20:18 +02:00
Christoph Oelckers
362e21a6b3 - fixed: The pitch negation required for INHERITACTORPITCH was also applied to the one from PITCHFROMMOMENTUM. 2016-05-17 09:12:26 +02:00