Commit Graph

15264 Commits

Author SHA1 Message Date
Christoph Oelckers 3775c4756e - moved sprite drawer to hwrenderer as well. 2018-10-21 17:50:01 +02:00
Christoph Oelckers 346a9ce149 - fixed initialization. 2018-10-21 14:45:03 +02:00
Christoph Oelckers 0af65a8fa0 - removed the direct setters for the blend mode state.
This will now always have to go through the render state.
2018-10-21 14:26:14 +02:00
Christoph Oelckers a3aaa5cc8b - removed old RenderStyle management. 2018-10-21 14:18:08 +02:00
Christoph Oelckers 8ffeb7812f - made wall draw code API independent. 2018-10-21 13:53:50 +02:00
Christoph Oelckers 7897f26abf - started reworking the wall drawer. 2018-10-21 13:11:36 +02:00
Christoph Oelckers acad8315d0 - move stencil recursion counter to render state. 2018-10-21 10:58:11 +02:00
Christoph Oelckers a97d71a3c3 - draw decals in hardware independent code. 2018-10-21 10:51:26 +02:00
Christoph Oelckers 1768508c80 - first adjustments to decal code.
- moved texture mode constants to a global header and consolidated with the variants of the 2D drawer.
2018-10-21 08:14:48 +02:00
Christoph Oelckers 3b7a5da83e - moved AddFlat to gl_drawinfo.cpp and deleted gl_flats.cpp. 2018-10-21 00:38:56 +02:00
Christoph Oelckers d45f6b9bea - moved the flat drawer to hwrenderer. 2018-10-21 00:35:39 +02:00
Christoph Oelckers e8f48e7535 - moved the color/fog setters to hwrenderer. 2018-10-20 23:33:07 +02:00
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