diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-04-30 19:25:05 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-04-30 19:25:05 +0300 |
commit | 669349bfe4d1fec0ee835dc56b652c7a638622ef (patch) | |
tree | 84736af35bd47f73352d90fe4b5e67cbdd32febf | |
parent | b95601fa1ac4a826c7fc077852f41906cf3f1f26 (diff) |
Overlay: Port edit uv shaders to use shaderCreateInfo
This should have no functional changes.
Removed `antialiasing_vert.glsl` becaus it was actually a duplicate of
`common_fullscreen_vert.glsl`.
7 files changed, 25 insertions, 42 deletions
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index 68c1671b1bf..9036ca9cd50 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -428,7 +428,6 @@ set(GLSL_SRC engines/overlay/shaders/common_overlay_lib.glsl engines/overlay/shaders/antialiasing_frag.glsl - engines/overlay/shaders/antialiasing_vert.glsl engines/overlay/shaders/armature_dof_vert.glsl engines/overlay/shaders/armature_dof_solid_frag.glsl engines/overlay/shaders/armature_envelope_outline_vert.glsl diff --git a/source/blender/draw/engines/overlay/overlay_shader.c b/source/blender/draw/engines/overlay/overlay_shader.c index 868e5c6715a..9d180f7fb8d 100644 --- a/source/blender/draw/engines/overlay/overlay_shader.c +++ b/source/blender/draw/engines/overlay/overlay_shader.c @@ -238,15 +238,7 @@ GPUShader *OVERLAY_shader_antialiasing(void) { OVERLAY_Shaders *sh_data = &e_data.sh_data[0]; if (!sh_data->antialiasing) { - sh_data->antialiasing = GPU_shader_create_from_arrays({ - .vert = (const char *[]){datatoc_common_globals_lib_glsl, - datatoc_antialiasing_vert_glsl, - NULL}, - .frag = (const char *[]){datatoc_common_globals_lib_glsl, - datatoc_antialiasing_frag_glsl, - NULL}, - .defs = (const char *[]){NULL}, - }); + sh_data->antialiasing = GPU_shader_create_from_info_name("overlay_antialiasing"); } return sh_data->antialiasing; } @@ -1299,10 +1291,7 @@ GPUShader *OVERLAY_shader_xray_fade(void) { OVERLAY_Shaders *sh_data = &e_data.sh_data[0]; if (!sh_data->xray_fade) { - sh_data->xray_fade = GPU_shader_create_from_arrays({ - .vert = (const char *[]){datatoc_common_fullscreen_vert_glsl, NULL}, - .frag = (const char *[]){datatoc_xray_fade_frag_glsl, NULL}, - }); + sh_data->xray_fade = GPU_shader_create_from_info_name("overlay_xray_fade"); } return sh_data->xray_fade; } diff --git a/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl b/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl index 2f4542343f7..f28a809fdab 100644 --- a/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl +++ b/source/blender/draw/engines/overlay/shaders/antialiasing_frag.glsl @@ -1,15 +1,6 @@ #pragma BLENDER_REQUIRE(common_math_lib.glsl) -uniform sampler2D colorTex; -uniform depth2D depthTex; -uniform sampler2D lineTex; -uniform bool doSmoothLines; - -in vec2 uvs; - -out vec4 fragColor; - #define M_1_SQRTPI 0.5641895835477563 /* 1/sqrt(pi) */ /** diff --git a/source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl b/source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl deleted file mode 100644 index 8cf8ba121ed..00000000000 --- a/source/blender/draw/engines/overlay/shaders/antialiasing_vert.glsl +++ /dev/null @@ -1,11 +0,0 @@ - -out vec2 uvs; - -void main() -{ - int v = gl_VertexID % 3; - float x = float((v & 1) << 2); - float y = float((v & 2) << 1); - gl_Position = vec4(x - 1.0, y - 1.0, 1.0, 1.0); - uvs = vec2(x, y) * 0.5; -} diff --git a/source/blender/draw/engines/overlay/shaders/infos/antialiasing_info.hh b/source/blender/draw/engines/overlay/shaders/infos/antialiasing_info.hh new file mode 100644 index 00000000000..fe67dd473b7 --- /dev/null +++ b/source/blender/draw/engines/overlay/shaders/infos/antialiasing_info.hh @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include "gpu_shader_create_info.hh" + +GPU_SHADER_CREATE_INFO(overlay_antialiasing) + .do_static_compilation(true) + .sampler(0, ImageType::DEPTH_2D, "depthTex") + .sampler(1, ImageType::FLOAT_2D, "colorTex") + .sampler(2, ImageType::FLOAT_2D, "lineTex") + .push_constant(Type::BOOL, "doSmoothLines") + .fragment_out(0, Type::VEC4, "fragColor") + .fragment_source("antialiasing_frag.glsl") + .additional_info("draw_fullscreen", "draw_globals"); + +GPU_SHADER_CREATE_INFO(overlay_xray_fade) + .do_static_compilation(true) + .sampler(0, ImageType::DEPTH_2D, "depthTex") + .sampler(1, ImageType::DEPTH_2D, "xrayDepthTex") + .push_constant(Type::FLOAT, "opacity") + .fragment_out(0, Type::VEC4, "fragColor") + .fragment_source("xray_fade_frag.glsl") + .additional_info("draw_fullscreen"); diff --git a/source/blender/draw/engines/overlay/shaders/xray_fade_frag.glsl b/source/blender/draw/engines/overlay/shaders/xray_fade_frag.glsl index b6a5c8d895c..9aa2fdc3796 100644 --- a/source/blender/draw/engines/overlay/shaders/xray_fade_frag.glsl +++ b/source/blender/draw/engines/overlay/shaders/xray_fade_frag.glsl @@ -1,12 +1,4 @@ -uniform sampler2D depthTex; -uniform sampler2D xrayDepthTex; -uniform float opacity; - -in vec4 uvcoordsvar; - -out vec4 fragColor; - void main() { float depth = texture(depthTex, uvcoordsvar.xy).r; diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index e72ed9d6135..687ecd3ab63 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -443,6 +443,7 @@ list(APPEND INC ${CMAKE_CURRENT_BINARY_DIR}) set(SRC_SHADER_CREATE_INFOS ../draw/engines/gpencil/shaders/infos/gpencil_info.hh ../draw/engines/gpencil/shaders/infos/gpencil_vfx_info.hh + ../draw/engines/overlay/shaders/infos/antialiasing_info.hh ../draw/engines/overlay/shaders/infos/armature_info.hh ../draw/engines/overlay/shaders/infos/extra_info.hh ../draw/engines/overlay/shaders/infos/grid_info.hh |