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
23fbd69963
- 4 more places where immediate mode drawing has been substituted with a buffer-based alternative.
2014-05-20 22:20:15 +02:00
Christoph Oelckers
6e6be8ed5b
Merge branch 'master' into Glew_Version_For_Real
2014-05-18 12:47:48 +02:00
Christoph Oelckers
03d4f23a6e
- made adjustments to the texture loading code to account for the recent changes to handle long texture names.
2014-05-15 19:27:22 +02:00
Christoph Oelckers
60f0ab5f1b
- fixed Linux warning with type cast.
2014-05-13 12:00:11 +02:00
Christoph Oelckers
579eff5b96
- add vertex buffer based rendering for decals.
2014-05-12 22:46:30 +02:00
Christoph Oelckers
cf45f2d718
- added missing shader files.
2014-05-12 22:24:26 +02:00
Christoph Oelckers
b514a815f4
- enable use of vertex buffer for sprite rendering.
2014-05-12 20:23:54 +02:00
Christoph Oelckers
9c659b948c
- reactivated texture warping.
2014-05-12 15:13:07 +02:00
Christoph Oelckers
55d4c89753
- fixed: fog density calculation for fixed function was not correct.
2014-05-12 14:58:37 +02:00
Christoph Oelckers
4d005bdfa0
shader rework
...
All those special shaders have been merged together.
Mostly working but the non-shader lighting seems a bit broken.
2014-05-12 14:45:41 +02:00
Christoph Oelckers
98cc7eeb99
pass softlightlevel through render state.
2014-05-12 00:13:19 +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
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
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
607be91c48
- bad copy.
2014-05-11 16:54:11 +02:00
Christoph Oelckers
8ae97bc3e1
-looks like we still need this...
2014-05-11 16:51:33 +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
f3a9cb0cfa
remove special texture creation for fullscreen colormaps.
...
On GL 3.x+ this isn't needed at all and on older hardware it causes performance issues, in particular with hires textures due to impossibility of precaching.
In addition it forces some really awkward handling of lighting for things that have their own color, like stenciled sprites or particles.
With this special case gone it will be possible to handle this case in a saner manner than it is right now.
As compensation for older hardware a fullscreen blend will be drawn over the entire screen. This won't be 100% accurate but it's preferable to keeping the current method.
2014-05-11 14:46:37 +02:00
Christoph Oelckers
5947584bff
Merge branch 'master' into Glew_Version_For_Real
2014-05-11 13:29:37 +02:00
Christoph Oelckers
cd6d653b59
- fixed: the delayed state changer for the alpha function called glBlendFunc instead of glAlphaFunc.
2014-05-11 13:29:06 +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
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
b09405a8bd
- changed rendering of glowing walls so that it doesn't require an additional vertex attribute, just pass the floor and ceiling planes as uniforms.
2014-05-10 17:09:43 +02:00
Christoph Oelckers
64d991b9b3
Merge branch 'master' into Glew_Version_For_Real
2014-05-10 15:29:06 +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
314225f1b0
- don't depend on stdint.h because older MSVC versions do not have it.
2014-05-01 12:30:56 +02:00
Christoph Oelckers
94b06900cb
- got rid of a lot of stuff that's no longer required with GLEW.
...
- replaced GLUs texture scaling with our own function. This is only used to scale down textures larger than what the hardware can handle so we do not need a dependency to an essentially deprecated library for it.
2014-04-15 11:59:41 +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
Christoph Oelckers
47406a3406
- I don't think it's a good idea to put a 64 MB lookup table into the static data segment, if it's for a piece of code most people will never use...
2014-04-03 23:02:43 +02:00
Gaerzi
0aba6e09f3
Disambiguate which abs type we want.
2014-04-03 20:14:38 +02:00
Gaerzi
7261af1d9f
Don't define HQX_API to anything on Windows
2014-04-02 20:23:17 +02:00
galtgendo
8f97e96af1
silence a noisy warning
2014-03-28 01:54:42 +01: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
917a869a54
- fixed: gl_SetFog set the vertex attribute for software lighting mode without checking if the mode is actually on.
2013-12-23 09:56:16 +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
Christoph Oelckers
d46315c44b
- some finetuning of subtractive effect.
2013-12-05 15:39:46 +01:00
Christoph Oelckers
95163e378e
- added a fog layer when drawing sprites with render style reverse subtract.
2013-12-05 15:06:10 +01:00
Christoph Oelckers
f40dc9deb2
Merge branch 'master' of https://github.com/chungy/gzdoom
2013-12-05 14:02:35 +01: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
058f065446
- fixed: FFlatVertex contained two unused members.
...
- fixed: Clearing the args in the VavoomLightColor constructor only cleared 5 bytes, still assuming byte args.
2013-12-05 10:23:01 +01:00
Christoph Oelckers
9ac3b6aa1b
- fixed: IsVisibleToPlayer needs to be checked for the owner of owned dynamic lights.
2013-11-30 13:15:22 +01:00