Magnus Norddahl
ecb5d69ae3
- Simplify FGLRenderer::PostProcessScene
2018-06-29 21:55:46 +02:00
Magnus Norddahl
a7529ce3b4
Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess
2018-06-29 20:24:32 +02:00
Christoph Oelckers
446be98f37
- fixed light application logic for flats.
...
The light mode check wasn't done properly anymore after merging GLPASS_ALL and GLPASS_PLAIN.
2018-06-26 09:28:10 +02:00
Magnus Norddahl
61d69f5561
Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess
2018-06-26 02:12:49 +02:00
Christoph Oelckers
daf8703fc9
- split up Win32's SystemGLFrameBuffer as well to get the shareable parts between OpenGL and Vulkan into a base class.
2018-06-24 21:26:32 +02:00
Christoph Oelckers
e7365be0d1
- renamed SystemFrameBuffer to SystemGLFrameBuffer.
...
... because with Vulkan there needs to be some hint what API this is for.
2018-06-24 20:16:30 +02:00
Magnus Norddahl
32d837cdf1
Merge remote-tracking branch 'gzdoom/modern' into hw_postprocess
2018-06-24 17:57:02 +02:00
Christoph Oelckers
491898fe2c
- fixed calculation of projection matrix for weapon sprites.
...
- fixed color mask for green/magenta.
- fixed crash when initializing video, because it was accessing 'screen' before it was set from within the framebuffer's constructor.
2018-06-24 17:16:07 +02:00
Christoph Oelckers
c3d5b960ee
- refactored the entire Stereo3D system to get rid of the class hierarchy and all its ugly implications.
...
Ultimately all this needs is a small data table describing the geometric properties of each mode and a single Present function that calls the mode specific variants.
Code size got reduced from 50kb to less than 20kb with proper separation of the generic parts from the OpenGL parts.
2018-06-24 17:16:07 +02:00
Christoph Oelckers
4ef7b66c4b
- partial consolidation of the EyePose classes.
...
The SBS versions can just as easily be handled with an additional parameter.
2018-06-24 11:45:40 +02:00
Christoph Oelckers
532fba5c26
- moved the Stereo3D EyePose to their own file in hwrenderer/.
2018-06-24 10:47:42 +02:00
Christoph Oelckers
e7a0ccf879
- fixed remaining issues with portal refactoring.
2018-06-23 23:03:34 +02:00
Christoph Oelckers
6ebec37baf
- moved all portal code that sets up a scene to be rendered into API independent code and let it be handled by a common wrapper class.
2018-06-23 23:03:34 +02:00
Magnus Norddahl
b2fad453fa
- change tonemaps to steps
2018-06-23 19:25:49 +02:00
Christoph Oelckers
1cf3af9c41
- moved the current portal pointer to HWDrawInfo so that the portal managed does not need to save and restore a global variable for each portal.
2018-06-23 13:51:19 +02:00
Christoph Oelckers
282fdac660
- made the static portal state a struct inside the Renderer object
2018-06-23 13:25:59 +02:00
Christoph Oelckers
82d7e5970f
- moved the clipline uniform to the viewpoint buffer.
...
This was the final one of the per-scene values that could be taken out of the render state.
2018-06-22 23:49:39 +02:00
Christoph Oelckers
7f0e29db48
- fixed clip plane setup.
...
This had to be reordered so that the clip plane gets set before applying the uniforms.
2018-06-22 22:50:33 +02:00
Christoph Oelckers
80a9028938
- mirror clip planes moved - not working yet.
2018-06-22 22:45:05 +02:00
Christoph Oelckers
e7531bb579
- fixed camerapos setup.
2018-06-22 21:44:53 +02:00
Christoph Oelckers
d5af939119
- more uniforms moved.
...
(not working yet.)
2018-06-22 21:32:38 +02:00
Christoph Oelckers
43e1a2d249
- moved uViewHeight and uCameraPos to the viewpoint uniform struct.
2018-06-22 21:05:36 +02:00
Magnus Norddahl
ebf0cef283
- convert colormap shader to postprocess steps
2018-06-22 00:51:58 +02:00
Magnus Norddahl
83f50f5808
- port bloom, blur and camera exposure to postprocess steps and remove the old implementation
2018-06-22 00:29:50 +02:00
Christoph Oelckers
9486180843
- simplify the interface.
2018-06-21 21:36:12 +02:00
Christoph Oelckers
1967165633
- move view and projection matrices to DrawInfo.
2018-06-21 21:02:14 +02:00
Christoph Oelckers
b106f72741
- don't route calls to FMaterial::FlushAll through the framebuffer interface.
2018-06-20 22:18:31 +02:00
Magnus Norddahl
fd2037bd6c
- removed the rest of the old lens and fxaa code
2018-06-20 20:09:37 +02:00
Magnus Norddahl
151ed22967
- write OpenGL backend for hw_postprocess (FGLRenderBuffers::RenderEffect)
...
- remove old fxaa and lens shader classes
- render the fxaa and lens effects
2018-06-20 19:56:30 +02:00
Christoph Oelckers
eb277cc101
- calculate the normal view matrix at a higher level.
2018-06-20 13:49:06 +02:00
Christoph Oelckers
7f5272c23f
Deleted GLSceneDrawer
...
Since it didn't contain any data anymore it was relatively pointless. Code has been moved to FDrawInfo and GLRenderer, depending on its scope.
2018-06-20 13:14:50 +02:00
Christoph Oelckers
f229b05675
- Took more functions out of GLSceneDrawer
2018-06-20 12:57:41 +02:00
Christoph Oelckers
469c9241eb
Moved WriteSavePic implementation to FGLRenderer
2018-06-20 12:29:52 +02:00
Christoph Oelckers
64ce4d5072
- The Teardown virtuals aren't implemented anywhere so they can go away
2018-06-20 11:46:25 +02:00
Christoph Oelckers
f7d8f32114
- removed some unused code from RenderViewpoint
2018-06-20 11:43:10 +02:00
Christoph Oelckers
3a80160ca0
More code from GLSceneDrawer to FDrawInfo
2018-06-20 11:38:45 +02:00
Christoph Oelckers
b244fa2c8b
Took the main render function out of GLSceneDrawer and moved them into FDrawInfo
...
First step of eliminating the intermediate SceneDrawer class which has become mostly redundant.
2018-06-20 11:17:38 +02:00
Christoph Oelckers
677eba3392
- fix the header
2018-06-20 10:48:24 +02:00
Christoph Oelckers
2060402671
Moved the viewpoint setup code in RenderViewpoint to R_SetupFrame
2018-06-20 10:47:03 +02:00
Christoph Oelckers
9bdb5f1a5d
Moved ProcessLowerMinisegs back toAPI independent code.
2018-06-20 10:10:30 +02:00
Christoph Oelckers
54970b60e8
- use locally stored viewpoint variables in the hardware renderer.
...
- move a few variables from SceneDrawer to FRenderViewpoint.
The global r_viewpoint variable is left alone now to always represent the current viewpoint to the play code.
The main reason behind this change is to reduce the amount of global variables being used by the hardware renderer's scene processing code.
2018-06-19 23:45:17 +02:00
Christoph Oelckers
d2309af3d5
Merge remote-tracking branch 'remotes/origin/master' into modern
...
# Conflicts:
# src/d_main.cpp
# src/hwrenderer/scene/hw_weapon.cpp
2018-06-19 19:40:52 +02:00
Christoph Oelckers
eddb179e36
- moved ViewActor variable into FRenderViewpoint.
2018-06-19 18:51:46 +02:00
Christoph Oelckers
87dfa34f1f
- save r_viewpoint as a whole when processing portals.
2018-06-19 17:55:42 +02:00
Christoph Oelckers
753cd0aede
- made R_SetViewAngle a member of r_viewpoint
2018-06-19 17:44:11 +02:00
Christoph Oelckers
2c655322c3
… and in gl_sprites.cpp
2018-06-19 11:21:32 +02:00
Christoph Oelckers
74d8c929cc
Give the clipper a reference to the current viewpoint
...
This is both for efficiency and encapsulation. At last on MSVC in 64 bit, accessing global variables is very inefficient and the clipper was doing it repeatedly in its worker functions.
It is also one less place where the global viewpoint gets checked.
2018-06-19 09:37:49 +02:00
Christoph Oelckers
46d73e7b4b
Pass ticFrac to the model renderer as a parameter
...
This also removes the rather pointless gl_RenderModel functions because with their two lines of content they can just be placed inline.
2018-06-19 09:18:27 +02:00
Magnus Norddahl
01bda6348e
- change swrender mapping to use two buffers/textures and glTexSubImage2D for uploads
2018-06-19 00:09:39 +02:00
Magnus Norddahl
67733ed6e6
- change swrender mapping to use two buffers/textures and glTexSubImage2D for uploads
2018-06-18 21:15:52 +02:00