Commit graph

69 commits

Author SHA1 Message Date
Christopher Bruns
1f79e23d5b Implement wide side-by-side mode, using adjusted aspect ratio in projection matrix.
Use optimal framebuffer size for side-by-side modes.
2016-09-22 09:25:46 +02:00
Magnus Norddahl
f7b6b1433c Added exposure pass calculating the bloom/tonemap exposure based on what the eye is seeing 2016-09-22 09:13:32 +02:00
Christoph Oelckers
8b6e09ca09 - changed the license of the OpenGL renderer to LGPL v3.
This was done to clean up the license and to ensure that any commercial fork of the engine has to obey the far stricter requirements concerning source distribution. The old license was compatible with GPLv2 whereas combining GPLv2 and LGPLv3 force a license upgrade to GPLv3. The license of code that originates from ZDoomGL has not been changed.
2016-09-14 20:01:13 +02:00
Magnus Norddahl
5f02e08c8e Fix minimize crash 2016-09-04 03:15:50 +02:00
Christoph Oelckers
589936f570 - draw the colormap blend after postprocessing, not before it.
- added colormap shader to postprocessing.

This replaces the in-place application of fullscreen colormaps if renderbuffers are active. This way the fully composed scene gets inverted, not each element on its own which is highly problematic for additively blended things.
2016-09-01 17:14:51 +02:00
Christoph Oelckers
3389a5a74e - removed most of the specific options for legacy hardware and consolidated them in one variable (does not work yet.) 2016-09-01 11:52:52 +02:00
Christoph Oelckers
8f535997f8 - enable core profile by default on GL 3.x.
After doing some profiling it was very obvious that this has better performance than client arrays. Persistent buffers are still better, though, especially for handling dynamic lights.
2016-08-29 11:33:20 +02:00
Magnus Norddahl
bb066f6f07 Fall back to gl_renderbuffers 0 if buffer creation fails 2016-08-28 18:07:44 +02:00
Magnus Norddahl
b1a0108a96 Fix tonemap palette not being rebuilt on palette change 2016-08-26 19:52:15 +02:00
Magnus Norddahl
25645d901e Add Palette LUT tonemap mode 2016-08-23 09:18:18 +02:00
Magnus Norddahl
d380d765c9 OpenGL object labels and debug groups 2016-08-17 23:18:47 +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
847d2e8862 Fix viewport not being updated when resizing window when no scene is active 2016-08-14 09:05:51 +02:00
Magnus Norddahl
210fce1193 Fix bloom shader missing its target 2016-08-14 09:05:50 +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
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
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
976a78429e Simplify post process buffer handling 2016-08-04 17:16:49 +02:00
Magnus Norddahl
6b9529d70f Added lens distortion shader 2016-08-02 17:32:21 +02:00
Magnus Norddahl
a6354c74cf Fix incorrect viewport location when not using fullscreen HUD 2016-07-31 13:23:49 +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
Magnus Norddahl
aeb7df09de Added hardware gamma option and improved window handling on Windows 2016-07-27 11:15:19 +02:00
Christoph Oelckers
ec7b4b1ba4 - initial work on textured dynamic light processing. 2016-05-04 22:14:39 +02:00
Christoph Oelckers
5f095082c0 - fixed: The 2D drawing code incorrectly set the shader override to disable all special effects. 2016-05-04 14:10:06 +02:00
Christoph Oelckers
8011958ebe Merge branch 'gz2x' of https://github.com/alexey-lysiuk/gzdoom
# Conflicts:
#	src/gl/system/gl_interface.cpp
2016-04-30 17:09:57 +02:00
alexey.lysiuk
4400d0cfcc Fixed restoration of previously bound FBO 2016-04-30 16:29:22 +03:00
Christoph Oelckers
21283b18f4 - preparations for using clip planes on line portals. 2016-04-29 01:48:06 +02:00
Christoph Oelckers
3b1500438d - got rid of VAO's. they have no impact on performance and are a general nuisance if some render paths cannot use them.
- cleaned up gl_interface and removed gl.compatibility.
2016-04-26 16:26:34 +02:00
Christoph Oelckers
090d13b915 - updated gl_interface to deal with older GL versions.
- added the framework for allowing multipass textured dynamic lights again.
2016-04-26 15:20:26 +02:00
Christoph Oelckers
573d80f144 - render sproites through sector portals. 2016-04-18 23:52:15 +02:00
Christoph Oelckers
2e16f3d77e - made some adjustment for the DrawTexture changes. 2016-04-09 20:49:27 +02:00
Christoph Oelckers
1f0fd85d0e - adjustments for the DrawTexture interface changes. 2016-04-09 13:05:43 +02:00
Christoph Oelckers
cf44d2e37a - adjustments. 2016-03-30 20:01:44 +02:00
Christoph Oelckers
59406c1273 - adjust. 2016-03-24 16:40:15 +01:00
Christoph Oelckers
eadecaf407 - adjustments to GL renderer for decal and alpha changes.
- handle portals in sprite lighting, but do not use the playsim's utility functions for efficiency.
2016-03-22 23:19:21 +01:00
Christoph Oelckers
b54b34a512 - adjustments for floating point changes. 2016-03-21 02:57:02 +01:00
Christoph Oelckers
926e9fdac4 - fixed: For 2D-drawing of camera textures the render style was not set. 2016-01-07 22:20:57 +01:00
Christoph Oelckers
052dda0fdd - made MD3 models reloadable. 2015-04-12 19:42:03 +02:00
Christoph Oelckers
45cf65afbd - moved the aspect ratio correction factor from the projection to the view matrix where it should have been from the start.
- removed the mCameraPos variable in FGLRenderer because it was only used in one place where it is just as easy to use the global viewx/y/z variables directly.
2014-12-29 22:42:19 +01:00
Christoph Oelckers
e5cd90f323 - use separate vertex buffers per model to avoid large memory usage peaks. Also delete the geometry data for the models once it has been copied into the vertex buffer. 2014-10-24 11:43:25 +02:00
Christoph Oelckers
5302a10a7d - diable software lighting for textured automap.
* since it is designed for software-style light diminishing it doesn't work for 2D.
* additionally it left the lighting state in an unsuitable setting for further 2D rendering.
2014-10-23 09:19:30 +02:00
Christoph Oelckers
4bb320a27c - route texture binding through the renderstate class for better control. Currently it's just a direct passthrough but this will change. 2014-09-09 12:00:42 +02:00
Christoph Oelckers
904cc2e158 - some code cleanup. 2014-08-23 18:54:24 +02:00
Christoph Oelckers
1050013017 major cleanup of the texture manager:
- use sampler objects to avoid creating up to 4 different system textures for one game texture just because of different clamping settings.
- avoids flushing all textures for change of texture filter mode.
- separate sprite and regular dimensions on the material level to have better control over which one gets used. It's now an explicit parameter of ValidateTexture. The main reason for this change is better handling of wall sprites which may not be subjected to such handling.
- create mipmaps based on use case, not texture type.
- allows removal of FCloneTexture hack for proper sharing of the same sprite for decals and other purposes.
- better precaching of skyboxes.
2014-08-22 23:50:38 +02:00
Christoph Oelckers
00d7707aef - allow reallocation of light buffer if more lights are needed.
- added a light preprocessing pass to the renderer so that a non-persistent buffer can be used with minimal mapping/unmapping. This only gets used if necessary because it adds some overhead to the renderer.
2014-08-19 14:18:21 +02:00
Christoph Oelckers
7967082e60 - use the light buffer to handle dynamic lighting. 2014-08-01 20:59:39 +02:00
Christoph Oelckers
b8bcbe819b - removed texture based dynamic lighting. For GL 3.x the shader approach is always better.
- fixed: sky fog was not unset.
2014-07-15 20:49:21 +02:00