Commit graph

28 commits

Author SHA1 Message Date
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
c9c93a58a2 - fixed bad constant and potential use of uninitialized variable. 2014-07-27 21:55:25 +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
Christoph Oelckers
fb6b4238ed - fixed: glProgramUniform is only present from GL 4.1 or a specific extension so it may not be used on systems not supporting it. 2014-07-15 02:48:59 +02:00
Christoph Oelckers
ed8a21fd86 - replaced deprecated alpha testing with shader code. 2014-07-14 21:14:43 +02:00
Christoph Oelckers
ce3653f6e1 - remove all uses of builtin matrices. 2014-07-13 23:13:40 +02:00
Christoph Oelckers
dbb05c5f33 - remove use of builtin texture matrices.
- make matrix class single precision.
2014-07-13 20:41:20 +02:00
Christoph Oelckers
54297acde4 - removed obsolete gl_lightbuffer code.
This never worked properly and by now far better options are available to solve the problem of dynamic light data uploads.
2014-06-30 13:30:10 +02:00
Christoph Oelckers
2925c96b59 removed all GL 2.x code.
After thinking about it for a day or so I believe it's the best option to remove all compatibility code because it's a major obstacle for a transition to a core profile.
2014-06-21 15:50:32 +02:00
Christoph Oelckers
e6f14b055a - use buffer based rendering for dynamic light pass and horizon portals. 2014-06-15 20:28:23 +02:00
Christoph Oelckers
1aaa1b7bad - removed gl_usevbo CVAR because with recent code changes it has become useless. If GL_ARB_buffer_storage is present, buffers will always be used. 2014-06-15 12:12:24 +02:00
Christoph Oelckers
3644073bbd - use a software buffer for immediate mode rendering. This allows using the regular buffer code to collect data for both render modes and allows removal of a lot of duplicated code. 2014-06-15 01:14:41 +02:00
Christoph Oelckers
5b302ed3a6 - added benchmarking calls for glDrawArrays to see how well issunig draw calls performs on different hardware. 2014-06-14 15:16:33 +02:00
Christoph Oelckers
09ba62fbef - put all the common part of buffer based drawing into a separate method of the vertex buffer. 2014-05-20 22:37:38 +02:00
Christoph Oelckers
579eff5b96 - add vertex buffer based rendering for decals. 2014-05-12 22:46:30 +02:00
Christoph Oelckers
98cc7eeb99 pass softlightlevel through render state. 2014-05-12 00:13:19 +02:00
Christoph Oelckers
506798f134 allow brightmaps and fullbright objects in fog. The reasons why they were disabled no longer exist. 2014-05-11 23:12:28 +02:00
Christoph Oelckers
c47c7421a3 - route all glColor calls through render state.
- add sector links to dynamic lights.
2014-05-11 22:57:42 +02:00
Christoph Oelckers
978ace241c - removed all code that mixes together the different lighting methods. Now everything goes through the 3 different light parameters in the render state.
- removed cm parameter from many functions.
2014-05-11 21:47:54 +02:00
Christoph Oelckers
52056a05bd - changed handling of DynLight in shader to serve as a global dynamic light color for all lighting modes. 2014-05-11 16:49:17 +02:00
Christoph Oelckers
53f4cd0108 - added objectcolor uniform. This will be used to hold the thingcolor for shader based rendering. 2014-05-11 16:06:25 +02:00
Christoph Oelckers
f7404d20fb - add vertex buffer based drawing for all walls and flats. 2014-05-11 01:23:27 +02:00
Christoph Oelckers
7d3beb665b - rewrote vertex buffer code to require GL_ARB_BUFFER_STORAGE extension.
This means it won't work anymore on anything that doesn't support OpenGL 4.0, but I don't think this is a problem. On older NVidia cards performance gains could not be seen and on older AMDs using the vertex buffer was even worse as long as it got mixed with immediate mode rendering.
2014-05-10 21:47:07 +02:00
Christoph Oelckers
1d4ea9f162 - removed the __asm nop breakpoints for debugging. They not only do not work on non-MSVC but also not on 64 bit. 2014-05-08 09:48:39 +02:00
Christoph Oelckers
2885056f46 - moved GLEXT API out of RenderContext struct. 2013-09-03 18:29:39 +02:00
Christoph Oelckers
26943fe3fd - removed gl interface function pointers for all OpenGL32.dll entry points. 2013-09-03 14:05:41 +02:00
Christoph Oelckers
399d0974ab - added GL render as of SVN revision 1600. 2013-06-23 09:49:34 +02:00