Christoph Oelckers
7967082e60
- use the light buffer to handle dynamic lighting.
2014-08-01 20:59:39 +02:00
Christoph Oelckers
ef8f66c9a1
- removed the code for hardware alpha testing again because it didn't work anymore with how things are set up now.
...
- we need to check all GL versions when trying to get a context because some drivers only give us the version we request, leaving out newer features that are not exposed via extension.
- added some status info about uniform blocks.
2014-07-30 23:13:16 +02:00
Christoph Oelckers
c9c93a58a2
- fixed bad constant and potential use of uninitialized variable.
2014-07-27 21:55:25 +02:00
Christoph Oelckers
3d24f58bf0
- fixed conditions for disabling the flat vertex buffer.
2014-07-27 20:18:32 +02:00
Christoph Oelckers
29a56fe01c
Merge branch 'master' into Glew_Version_For_Real
2014-07-27 17:59:50 +02:00
Christoph Oelckers
925305aa05
- fixed: The code for updating vertex dirty state had been completely missing. I have no idea when it disappeared...
2014-07-27 17:58:51 +02:00
Christoph Oelckers
4904abfc1c
- forgot test stuff.
2014-07-27 13:47:37 +02:00
Christoph Oelckers
97341fcb31
- reenabled the flat vertex buffer for GL 3.x NVidia hardware. On AMD and Intel it'll stay off because past tests have shown that it won't improve performance at all.
2014-07-27 13:46:35 +02:00
Christoph Oelckers
637aa9d77e
- some adjustments to allow testing the different rendering methods.
2014-07-26 18:43:54 +02:00
Christoph Oelckers
eb9d2d9917
- reactivate compatibility profile so that immediate mode drawing can be used on older hardware not supporting persistently mapped buffers.
...
- reactivate alpha testing per fixed function pipeline
- use the 'modern' way to define clip planes (GL_CLIP_DISTANCE). This is far more portable than the old glClipPlane method and a lot more robust than checking this in the fragment shader.
2014-07-17 02:37:18 +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
fc0cf4f998
- GZDoom now runs on an OpenGL core profile. :)
...
It's probably still necessary to replace GLEW with another loader library. GLEW is pretty much broken on core OpenGL without some hacky workarounds...
2014-07-15 02:26:23 +02:00
Christoph Oelckers
ed8a21fd86
- replaced deprecated alpha testing with shader code.
2014-07-14 21:14:43 +02:00
Christoph Oelckers
ed5ee4e8d1
- removed some obsolete init stuff and some deprecated constants.
2014-07-14 18:48:46 +02:00
Christoph Oelckers
2214c0ac06
- remove all uses of builtin matrix manipulation. Only glLoadMatrix for view and projection matrix are left.
2014-07-13 22:37:34 +02:00
Christoph Oelckers
9c5cec0056
- draw wipes with buffers
...
Only two things left that still use immediate mode directly: MD3 models and voxels.
2014-06-30 10:05:15 +02:00
Christoph Oelckers
ffcb6cb70a
- added second vertex coordinate attribute for model interpolation.
2014-06-29 11:00:21 +02:00
Christoph Oelckers
1f0c69a0e9
- some cleanup after GL 2.x code removal
...
- reinstated burn warp with shader based code.
2014-06-21 16:41:45 +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
d5dceb6874
- changed alpha texture handling to avoid using the deprecated GL_ALPHA8 texture format unless we have a compatibility context of an older GL version.
2014-06-21 12:52:19 +02:00
Christoph Oelckers
59522f7065
- simplified MD2 drawing code as preparation for a buffer based implementation.
2014-06-19 13:37:30 +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
0ce6b40672
- fixed compile error in gl_skydome.cpp
...
- disable GL_ARB_buffer_storage when a -glversion parameter less than 4.0 is given. According to the spec this extension requires 4.0 so if emulating something lower it should not be used.
2014-06-14 14:58:17 +02:00
Christoph Oelckers
8d9a90cd22
- rewrote sky dome rendering to use a static vertex buffer if not on OpenGL 2.x.
2014-06-14 01:24:28 +02:00
Christoph Oelckers
b9a6fe80a4
Do not use the shader to handle STYLEF_RedIsAlpha.
...
Turns out that the name doesn't accurately describe what it does.
It is correct for images that come with their own palette or are true color.
But for images using the game palette it doesn't use the red channel to determine translucency but the palette index! Ugh...
This means it cannot be done with a simple operation in the shader because it won't get a proper source image. The only solution is to create a separate texture.
2014-05-11 23:56:53 +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
887d35d559
- remove colormap from texture generation parameters. The one remaining special case, alpha texture on old hardware is now handled by the currently set texture mode at the time of use.
...
- use the cleaned up decal lighting code from the first GLEW branch.
2014-05-11 19:44:19 +02:00
Christoph Oelckers
7793bbbcc9
Further cleanup of lighting code.
...
- remove thing color from lighting calculations.
- implement alpha textures and inverse sprites for infrared as texture modes. This still requires some handling for the alpha texture mode for non-shader rendering because there is no way in the fixed pipeline to do it. The inverted texture effect can be done with a texture combiner.
- fixed: ThingColor for sprites was set in the wrong place. It must be in the Process function, not in the lighting calculation.
- added functions for isolated calculation of sprites' dynlight color.
2014-05-11 17:56:38 +02:00
Christoph Oelckers
09f4071436
Ok, it had to be done: Removed shader support for pre GLSL 1.3/GL 3.0 hardware. The compromises needed to accomodate these are just too bad and would block any attempt at streamlining the code.
2014-05-11 13:27:51 +02:00
Christoph Oelckers
92b9814460
Merge branch 'master' into Glew_Version_For_Real
2014-05-11 09:17:46 +02:00
Christoph Oelckers
a42cde0837
- removed #include of glxew.h because it's not used.
...
- removed some unused functions from gl_interface.cpp which were causing problems when compiling on Linux.
2014-05-11 09:17:18 +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
69af73d9b9
- alternative configuration using GLEW to get extension functions. This requires GL 2.0, though so it won't be promoted to the mainline for the time being.
...
- removed all pre GL 2.0 support.
2014-04-06 14:35:44 +02:00
galtgendo
4909aa750f
Use more portable hqx code from googlecode hqx
...
Conflicts:
src/CMakeLists.txt
2014-03-28 01:49:53 +01:00
Christoph Oelckers
3b5d379fa4
- Linux compile fix.
2013-12-09 11:34:26 +01:00
alexey.lysiuk
4b24489393
* fix compilation on non-Windows systems
2013-12-07 12:25:38 +02:00
Mike Swanson
d48d337883
convert file from UTF-16LE to UTF-8
...
This one file gave issues with parsing in certain programs, including
the GitHub UI. No need for English text to waste so much space.
2013-12-05 04:43:29 -08:00
Christoph Oelckers
e4282d3554
- added error check to GL getProcAddress calls to spot driver errors.
2013-11-30 12:34:55 +01:00
Christoph Oelckers
fef0782a43
- added glext headers to the project because they seem to be broken in newer versions, causing compile errors on Linux.
2013-09-12 10:27:32 +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
4dc06cca70
- changed minimum required GL version to 1.3. The only 1.4 feature that's required is mipmap generation which on many older cards is available as an extension. The worst thing that can happen with relaxing the version requirement is that on a few ancient graphics cards the mipmapped texture filtering modes produce garbage.
2013-09-02 08:43:56 +02:00
Christoph Oelckers
737708b635
- fix c++11's compile problems.
2013-08-28 08:33:11 +02:00
Christoph Oelckers
b61ef3a107
- bumped minimum supported OpenGL version to 1.4. The engine was already using several 1.3 and 1.4 features which would have caused problems on 1.2.
...
- removed gl_vid_compatibility. With the bump to 1.4 no hardware requiring this flag is supported anymore.
- disabled 16 bit framebuffers for the same reason. As a conseqence all code for rendering without stencil could also be removed.
2013-08-18 15:41:52 +02:00
Christoph Oelckers
761ab4ab78
- moved all system specific code out of gl_interface.cpp into the respective Video classes (Win32GLVideo andSDLGLVideo.) (SDL side not tested yet!)
2013-08-18 14:16:33 +02:00
alexey.lysiuk
28fd035b22
* fix build on OS X via CMake
2013-06-28 11:02:55 +03:00
Braden Obrzut
57324f6fd8
Merge branch 'maint_1.8'
2013-06-26 19:05:03 -04:00
Braden Obrzut
276ca5b75b
- Fixed compilation on non-Windows systems by removing dependency on src/Linux/platform.h
2013-06-26 19:01:00 -04:00
Christoph Oelckers
46d203a929
- removed unused variable wgl_extensions.
2013-06-24 00:59:57 +02:00
Christoph Oelckers
399d0974ab
- added GL render as of SVN revision 1600.
2013-06-23 09:49:34 +02:00