diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-05-01 00:54:52 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-05-01 00:54:52 +0300 |
commit | 86b37748a7e9d685c56fc47c7aa96fdf7947d75e (patch) | |
tree | 2371a41d3b7a3b9069cbebd694a3c2ae19bff5e3 /source/blender/draw/engines/overlay/shaders | |
parent | 6e5877c189df5d6c2dfcaa44ba4c3c9a8b387998 (diff) |
Overlay: Port background shaders to use shaderCreateInfo
This should have no functional changes.
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders')
3 files changed, 28 insertions, 18 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/background_frag.glsl b/source/blender/draw/engines/overlay/shaders/background_frag.glsl index 6b45b341ca4..b25dcae9fca 100644 --- a/source/blender/draw/engines/overlay/shaders/background_frag.glsl +++ b/source/blender/draw/engines/overlay/shaders/background_frag.glsl @@ -1,21 +1,6 @@ -uniform sampler2D colorBuffer; -uniform sampler2D depthBuffer; -uniform int bgType; -uniform vec4 colorOverride; - -in vec4 uvcoordsvar; - -out vec4 fragColor; - -#define BG_SOLID 0 -#define BG_GRADIENT 1 -#define BG_CHECKER 2 -#define BG_RADIAL 3 -#define BG_SOLID_CHECKER 4 -#define BG_MASK 5 -#define SQRT2 1.4142135623730950488 +#pragma BLENDER_REQUIRE(common_math_lib.glsl) /* 4x4 bayer matrix prepared for 8bit UNORM precision error. */ #define P(x) (((x + 0.5) * (1.0 / 16.0) - 0.5) * (1.0 / 255.0)) @@ -69,7 +54,7 @@ void main() col_low = pow(colorBackgroundGradient.rgb, vec3(1.0 / 2.2)); vec2 uv_n = uvcoordsvar.xy - 0.5; - bg_col = mix(col_high, col_low, length(uv_n) * SQRT2); + bg_col = mix(col_high, col_low, length(uv_n) * M_SQRT2); /* Convert back to linear. */ bg_col = pow(bg_col, vec3(2.2)); diff --git a/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl b/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl index 1bfa5dadc32..c065a66414f 100644 --- a/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/clipbound_vert.glsl @@ -1,5 +1,5 @@ -uniform vec3 boundbox[8]; +#pragma BLENDER_REQUIRE(common_view_lib.glsl) void main() { diff --git a/source/blender/draw/engines/overlay/shaders/infos/background_info.hh b/source/blender/draw/engines/overlay/shaders/infos/background_info.hh new file mode 100644 index 00000000000..c96d302d861 --- /dev/null +++ b/source/blender/draw/engines/overlay/shaders/infos/background_info.hh @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include "gpu_shader_create_info.hh" + +GPU_SHADER_CREATE_INFO(overlay_background) + .do_static_compilation(true) + .typedef_source("overlay_shader_shared.h") + .sampler(0, ImageType::FLOAT_2D, "colorBuffer") + .sampler(1, ImageType::DEPTH_2D, "depthBuffer") + .push_constant(Type::INT, "bgType") + .push_constant(Type::VEC4, "colorOverride") + .fragment_source("background_frag.glsl") + .fragment_out(0, Type::VEC4, "fragColor") + .additional_info("draw_fullscreen", "draw_globals"); + +GPU_SHADER_CREATE_INFO(overlay_clipbound) + .do_static_compilation(true) + /* NOTE: Color already in Linear space. Which is what we want. */ + .define("srgbTarget", "false") + .push_constant(Type::VEC4, "color") + .push_constant(Type::VEC3, "boundbox", 8) + .vertex_source("clipbound_vert.glsl") + .fragment_out(0, Type::VEC4, "fragColor") + .fragment_source("gpu_shader_uniform_color_frag.glsl") + .additional_info("draw_view"); |