Commit Graph

15252 Commits

Author SHA1 Message Date
Christoph Oelckers fac7c7a31c - abstraction of render style in render state. 2018-10-20 23:14:57 +02:00
Christoph Oelckers 9ef5e00cdf - some cleanup and preparation on RenderState interface. 2018-10-20 21:36:50 +02:00
Christoph Oelckers 3c3be0d349 - started with an abstract render interface, most importantly handle the stencil for plane flooding through the render state object instead of changing GL state directly. 2018-10-20 21:08:24 +02:00
Rachael Alexanderson e2f6fa95d4 - fixed: attaching a new status bar to a player now calls 'setsizeneeded' - fixes an issue where the screen geometry is out of sync with the characteristics of the new status bar. 2018-10-20 13:22:11 -04:00
Christoph Oelckers 510aa600dd - moved hw_renderstate.h to hwrenderer folder and renamed one GL constant it was using. 2018-10-20 18:37:12 +02:00
Christoph Oelckers a4f7fd2e46 - started splitting the render state struct.
Reusable parts should be in hwrenderer later.
2018-10-20 13:34:29 +02:00
Christoph Oelckers 4603d01ba1 - removed some unused content from FGLRenderState. 2018-10-20 13:11:03 +02:00
Christoph Oelckers 9a03ba3cc5 - renamed FRenderState to FGLRenderState. 2018-10-20 13:05:36 +02:00
Christoph Oelckers 5f838d52b9 - some cleanup on the OpenGL interface and its flags.
Most importantly, the separate command line options for switching on the legacy buffer handling have been removed.
There's really no need for them anymore, because unlike in earlier versions many of the implementation differences no longer exist - with the exception of where the light and vertex buffer contents are generated.
For testing this, -glversion 3 is sufficient.
2018-10-20 12:55:25 +02:00
Christoph Oelckers 9253118bdc - removed the quad drawer class
This isn't needed anymore.
2018-10-20 11:59:12 +02:00
Christoph Oelckers 74ba142eae - allow vertex creation for sprites in the setup pass.
Currently only used by legacy hardware.
2018-10-20 11:53:20 +02:00
Christoph Oelckers d37cd63fda - use setter methods for glow initialization of sectors. 2018-10-20 11:28:51 +02:00
Christoph Oelckers 00c8c6e3b2 - generate vertices for skybox sectors in the processing pass.
Aside from the sprites this was the only other remaining use of FQuadDrawer.
2018-10-20 11:22:55 +02:00
Christoph Oelckers e5ff500c5a - rewrote render hacks to prepare their vertex data in the processing pass.
This eliminates 3 of the 5 remaining occurences of FQuadDrawer and gets a large section of code out of the GL backend into the common hardware rendering code.

# Conflicts:
#	src/gl/scene/gl_scene.cpp
2018-10-20 10:56:12 +02:00
Christoph Oelckers c5d1b884dd - fixed incorrect block size calculation. 2018-10-20 10:50:22 +02:00
Christoph Oelckers 6f81310fa7 Reinstate light buffer resizing, using the same method as for the model matrix buffer 2018-10-20 10:50:02 +02:00
Christoph Oelckers ad80efd6be Prepared light buffer for multithreaded use
This necessitated removing the reallocator because that cannot be done in a multithreaded context in OpenGL. The buffer should be large enough anyway, it it all gets used, slowdowns would be unavoidable.

There was also some simplification of the buffer alignment math for uniform buffers
2018-10-20 10:49:06 +02:00
Christoph Oelckers 84a55667d9 - removed more old code from flat renderer.
VBOHeightCheck was from early development when interpolation was not reflected by the vertex buffer.

# Conflicts:
#	src/gl/scene/gl_flats.cpp
2018-10-20 10:39:28 +02:00
Christoph Oelckers 07649fd31a - removed some leftover code for handling dynamic lights in the render pass.
# Conflicts:
#	src/gl/scene/gl_flats.cpp
2018-10-20 10:36:39 +02:00
Christoph Oelckers acb9505606 - fixed cherry-picked commit so that modern OpenGL can still do the light setup in the render pass. 2018-10-20 10:33:26 +02:00
Christoph Oelckers a9c8546ba3 - changed dynamic light setup so that it is completely in the processing pass, not the render pass.
# Conflicts:
#	src/gl/scene/gl_flats.cpp
#	src/hwrenderer/scene/hw_flats.cpp
2018-10-20 09:46:53 +02:00
Magnus Norddahl 4ac43dac36 - fix distance attenuation for PBR materials 2018-10-17 09:03:18 +02:00
Erick Tenorio c0cf19e9b5 - Visually align Doom 2 MAP04 crusher floors
Use Transfer_Heights to fake floors on the crusher sectors
2018-10-16 17:38:15 +02:00
Marisa Kirisame 1e6454598c Preserve line locknumber in savegames. 2018-10-16 08:58:37 -04:00
Christoph Oelckers 54d9ec11a8 Changed AppVeyor configuration to create the 64 bit debug build with VS 2017 and no XP toolset 2018-10-15 09:07:59 +02:00
Rachael Alexanderson 239b57b41c - fixed: use 'setsizeneeded' more often in the scaling code. recalculating screen geometry for 2D elements when it changes never really hurts. 2018-10-14 16:27:08 -04:00
Erick Tenorio cc8112f88d -Fixed many IWAD mapping errors 2018-10-14 11:44:54 +02:00
Christoph Oelckers dd719f0f14 - extended the register limit for 'param'.
The instruction one free instruction byte so it's now using that to extend its argument's register range to 65535.
For param this is needed because it passes strings by reference and creating an implicit temporary copy for string constants does not work here.
2018-10-14 09:13:26 +02:00
player701 eee0946bc5 - Fixed indentation 2018-10-14 00:52:00 +02:00
player701 6dc026895c - Exported PickNewWeapon function from PlayerPawn to ZScript. 2018-10-14 00:52:00 +02:00
Rachael Alexanderson ec7e855a56 - g3.7pre 2018-10-10 02:25:32 -04:00
Christoph Oelckers 0dc7f6be19 - fixed: MD3s with a skin-less surface left the renderer in an undefined state.
The frame interpolation factor wasn't reset and rendering prematurely aborted with no chance to recover.
2018-10-09 19:16:15 +02:00
Erick Tenorio 22f8c26917 Fix missing enemies in HTP-RAW.WAD MAP22
Make 100% kills possible on MAP22 of Hell to Pay
2018-10-09 07:44:30 -04:00
Rachael Alexanderson e223a25863 - fixed: smooth teleporters could fudge the player over an adjacent line, causing the player to appear on top of a cliff that is much higher than the original teleport. 2018-10-09 06:55:56 -04:00
Rachael Alexanderson 3d81be1517 - always enforce a minimum distance for fog when fogmode is set to standard. without this, it was possible for the GPU to error out and stop rendering pixels for certain screen blocks 2018-10-09 04:45:23 -04:00
Erick Tenorio 643e3a78d8 Fixes for Wraith Corporation WADs 2018-10-08 18:40:25 +02:00
alexey.lysiuk 77b8eb6547 - reverted macOS dark mode support with old SDKs
This feature causes several issues with NSOpenGLView:
* Mouse event coordinates are wrong in non-retina mode on HiDPI screen
* In retina mode only 1/4 of picture is visible and its scaling is incorrect
* Some sort of filtering is applied to frontbuffer picture
* Noticeable increase in CPU load because of that filtering

Linking with macOS 10.14 SDK leads to all these issues regardless of .plist option presence and its value
2018-10-08 15:50:56 +03:00
Christoph Oelckers 2c9a82e084 - fixed potential null pointer access in Hexen's spike code. 2018-10-07 20:00:30 +02:00
alexey.lysiuk 4d14642cad - enabled macOS dark mode support with pre-10.14 SDKs
https://developer.apple.com/documentation/appkit/nsappearancecustomization/choosing_a_specific_appearance_for_your_app
2018-10-07 11:10:29 +03:00
alexey.lysiuk 2a68926192 - use Xcode 10 for Travis builds 2018-10-07 11:08:10 +03:00
Christoph Oelckers 605d9ecdab - removed dynamic lights from Hexen's Mana pickups.
They barely glow, yet were casting relatively strong lights.
2018-10-06 23:50:12 +02:00
Magnus Norddahl d4a64284ea
Merge pull request #586 from Talon1024/feature/objSmoothCalc
Calculate normals for OBJ models with smooth groups
2018-10-05 21:40:16 +02:00
Magnus Norddahl 8ea74770fd - fix artifact in PCF filter when the texture coordinate wraps 2018-10-05 21:30:16 +02:00
alexey.lysiuk 9cffc29134 - fixed stuck memory usage warning in options menu
https://forum.zdoom.org/viewtopic.php?t=62186
2018-10-05 15:22:21 +03:00
Magnus Norddahl 5e04678965 Merge branch 'master' of https://github.com/coelckers/gzdoom 2018-10-05 04:36:27 +02:00
Magnus Norddahl 6135e867a9 - remove shadow acne from PCF shadowmap filter and add three quality levels 2018-10-05 04:36:11 +02:00
Rachael Alexanderson e7f19b01cb - added normal5x and normal6x 2018-10-04 22:09:18 -04:00
Magnus Norddahl 09bc6614cf
Merge pull request #595 from OrdinaryMagician/ue1_facetfix
Another minor correction to UE1 models
2018-10-04 23:24:16 +02:00
Marisa Kirisame 25ac526936 Computed facet normals for UE1 models were not normalized when they were supposed to. 2018-10-04 23:16:43 +02:00
Magnus Norddahl c60270bd9e Merge branch 'master' of https://github.com/coelckers/gzdoom 2018-10-04 15:33:22 +02:00