Commit graph

171 commits

Author SHA1 Message Date
Christoph Oelckers
a6ff1637df - more direct native stuff, this is a week old but was almost forgotten.
# Conflicts:
#	src/hwrenderer/postprocessing/hw_postprocessshader.cpp
2019-04-17 17:42:24 +02:00
Christoph Oelckers
9d126954d1 - removed the default parameter handling from all native script functions because it is no longer needed.
# Conflicts:
#	src/p_actionfunctions.cpp

# Conflicts:
#	src/hwrenderer/postprocessing/hw_postprocessshader.cpp
#	src/v_2ddrawer.cpp
2019-04-15 14:59:00 +02:00
drfrag666
e1c521f4ce - Made previous condition more clear. 2018-11-22 11:16:46 +01:00
Rachael Alexanderson
d24d25ef55 - fix inverted logic of Intel check 2018-11-22 10:59:17 +01:00
Magnus Norddahl
edd58e6abf - only use shader cache on Intel
# Conflicts:
#	src/gl/shaders/gl_shaderprogram.cpp
2018-11-22 10:59:05 +01:00
Magnus Norddahl
ff761c9864 - fix compile error 2018-11-21 20:19:14 +01:00
Magnus Norddahl
e4dc685202 - implement a shader cache
# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/gl/shaders/gl_shaderprogram.cpp

# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/gl/shaders/gl_shaderprogram.h
2018-11-21 14:26:37 +01:00
Christoph Oelckers
8368331481 - more options for Doom 64 style gradients on walls:
* Colors can npw be defined per sidedef, not only per sector.
* Gradients can be selectively disabled or vertically flipped per wall tier.
* Gradients can be clamped to their respective tier, i.e top and bottom of the tier, not the front sector defines where it starts.

The per-wall colors are implemented for hardware and softpoly renderer only, but not for the classic software renderer, because its code is far too scattered to do this efficiently.

# Conflicts:
#	src/hwrenderer/scene/hw_renderstate.h
#	src/hwrenderer/scene/hw_walls.cpp

# Conflicts:
#	src/gl/scene/gl_walls_draw.cpp
2018-11-16 21:16:15 +01:00
drfrag666
c2a3895bfe Revert "- add dithering to present shader"
This reverts commit 60ae0915b9.

This was extremely slow on intel, the dither matrix was recreated on every frame even when not used.
2018-11-12 11:11:28 +01:00
Magnus Norddahl
770c676ac9 - add gl_dither for toggling dithered output on and off
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/renderer/gl_stereo3d.cpp
#	src/hwrenderer/postprocessing/hw_presentshader.h
2018-10-09 21:57:14 +02:00
drfrag666
58b7967eea - enabled the linear shadowmap filter.
Although this doesn't look as good as the PCF version it is a lot less calculation intensive and therefore more suitable for weaker hardware.
It also tends to bleed through walls a lot less.
(refactored patch by Graf)
2018-10-04 19:08:49 +02:00
Magnus Norddahl
a1c5194a25 - fix missing forward declaration when falling back to older user shaders 2018-08-20 20:11:36 +02:00
Magnus Norddahl
9c74c9629a - rewrite the user shader support for materials - new syntax is to create a 'Material ProcessMaterial()' function
# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/hwrenderer/textures/hw_material.cpp
#	src/r_data/gldefs.cpp
#	wadsrc/static/shaders/glsl/main.fp
2018-08-20 01:22:34 +02:00
usernameak
57d4536f76 Fix codestyle; add ability to name the textures 2018-08-19 21:50:29 +02:00
usernameak
5cddbe4a16 Made ability to define custom material shaders for ProcessMaterial function
# Conflicts:
#	src/r_data/gldefs.cpp
2018-08-19 21:50:14 +02:00
Christoph Oelckers
b03c329ec6 - moved all GLDEFS parsing into a dedicated source file.
- split gl_postprocessshader.h in two so that the hardware independent part can be used by GLDEFS without pulling in all of OpenGL.

# Conflicts:
#	src/CMakeLists.txt
#	src/gl/dynlights/gl_glow.cpp
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/textures/gl_texture.cpp
2018-08-19 20:56:49 +02:00
Christoph Oelckers
425d756f04 - do not use SSBOs for dynamic lights on Intel graphics hardware for performance reasons.
This was already disabled for GL 4.4 and lower but also needs to be done for Intel's GL 4.5 drivers.
Unlike before this is now exclusive to the light buffer, the shadowmap feature is not affected anymore, although that should be impossible to use anyway on all affected hardware due to lack of computing power.

# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/gl_load/gl_interface.cpp
2018-07-28 19:38:47 +02:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Magnus Norddahl
07fa310f23 - move material light modes to their own subshader lumps 2018-02-20 00:13:05 +01:00
Magnus Norddahl
e2cab652d0 - Improve the "#line 1" directive insertion so that errors in all the shaders use line numbers relative to the lump they are referring to 2018-02-10 14:46:43 +01:00
Magnus Norddahl
5528d4157b - Make uniform removal a little bit more robust by only searching for known legacy uniforms 2018-02-10 14:06:17 +01:00
Magnus Norddahl
f01ef3d7a7 - Remove uniforms from user shader code 2018-02-10 12:52:59 +01:00
Magnus Norddahl
3207d8aef7 - generate uniform declarations from c++ 2018-02-09 23:29:31 +01:00
Magnus Norddahl
7a59bcde4c - move glossiness and specular level to GLDEFS 2018-01-25 19:53:55 +01:00
Magnus Norddahl
0855418475 Merge branch 'gzdoom' into materials
# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/gl/shaders/gl_shader.h
2018-01-25 19:21:19 +01:00
Magnus Norddahl
0f69778e23 - Add new material shader entries for specular and PBR light modes 2018-01-21 01:53:44 +01:00
Magnus Norddahl
4dd2d789f4 - Rename mTextureEffects to mMaterialShaders to help distinguish between those and effect shaders (mEffectShaders)
- Add MaterialShaderIndex enum
2018-01-21 01:19:16 +01:00
Magnus Norddahl
a23e5f49f6 - Add "fuzz software" to GL that renders fuzz like the scaled fuzz mode in the software renderer 2018-01-07 02:29:55 +01:00
Christoph Oelckers
836970f012 - moved the matrix code out of 'gl' because the model code also needs it. 2017-11-25 13:51:09 +01:00
Christoph Oelckers
f0dc619b5b - fixed bad use of FScanner::GetNumber and GetFloat in code inherited from ZDoomGL.
This could lead to bad error messages if some malformed definitions were used.
2017-11-19 15:30:45 +01:00
Rachael Alexanderson
de19efa79d - trying again: fix shader targets being case sensitive 2017-11-19 04:48:30 -05:00
Rachael Alexanderson
351de94311 - fixed: Accidentally committed in-progress work... again
Partial Revert "- fixed: Made shader targets not case sensitive"

This reverts commit 2c24d2e047.
2017-11-19 04:46:52 -05:00
Rachael Alexanderson
2c24d2e047 - fixed: Made shader targets not case sensitive 2017-11-19 04:41:07 -05:00
Rachael Alexanderson
0ccd388d91 - reverted the texture flip from the previous commit 2017-10-12 12:44:00 -04:00
Rachael Alexanderson
1b6f77a473 - fixed: inverted vertically texture uniforms for custom post-process shaders, and also changed their input format to BGRA to match the standard. 2017-10-12 11:54:56 -04:00
Magnus Norddahl
04be9fe6f2 - Remove test code committed by accident 2017-07-31 20:09:45 +02:00
Magnus Norddahl
d5733f515c - Support binding textures for custom PP shaders 2017-07-30 13:59:25 +02:00
Rachael Alexanderson
b30b93f40f - made postprocess shader parsing a little more strict, will error out more frequently with common mistakes. 2017-07-23 06:11:04 -04:00
Rachael Alexanderson
7728875a7f - Added 'enabled' property for PP shaders, to automatically enable them without ZScript 2017-07-13 05:57:12 -04:00
Rachael Alexanderson
e1b4bb11ba Merge https://github.com/coelckers/gzdoom 2017-07-09 20:09:12 -04:00
Magnus Norddahl
ddd1b629c3 - Calculate globvis/r_visibility in r_utility and use it in GL and poly renderers 2017-07-09 19:01:34 +02:00
Magnus Norddahl
00893763ed Merge branch 'custom_postprocess' into qzdoom 2017-07-08 14:44:30 +02:00
Magnus Norddahl
a38de996e7 - Move uniform declarations to the GLDEFS lump to make it Vulkan safe (a vulkan implementation can then declare them in an uniform block)
- Change SetUniform functions to be clearscope as they can be safely called from both play and ui
- Add PlayerInfo argument to SetUniform functions to force the modder to take network play into account
- Add enabled flag on custom postprocess shaders
- Removed custom texture support until a more clean implementation is written
2017-07-08 14:44:07 +02:00
Magnus Norddahl
69a3d10cb6 Merge branch 'custom_postprocess' into qzdoom
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
2017-07-06 05:41:16 +02:00
Magnus Norddahl
8a0e801cb5 - Move custom postprocess shader to its own file 2017-07-06 05:36:01 +02:00
Rachael Alexanderson
2bfd7859e4 Merge remote-tracking branch 'origin/custom_postprocess' 2017-07-03 17:17:17 -04:00
Magnus Norddahl
e161bba146 - Specify shader uniforms from ZScript 2017-07-03 22:30:49 +02:00
Rachael Alexanderson
edb45cd70d Merge remote-tracking branch 'origin/custom_postprocess' 2017-07-02 19:56:57 -04:00
Magnus Norddahl
ee6d7cf17e - Add initial postprocess shader support to GLDEFS file 2017-07-03 01:26:02 +02:00
Rachael Alexanderson
0d8b7c55ef - added a grayscale formula selector 2017-07-02 16:45:06 -04:00