diff options
author | Jeroen Bakker <jeroen@blender.org> | 2022-01-28 17:09:35 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2022-01-28 17:09:35 +0300 |
commit | 4e93918b35facdc1ef8aa84d234c0687418006e2 (patch) | |
tree | 379299aa4036fbcb777cfb2ae75457baf7a3b7ae /source | |
parent | c40d6ebceb9a6439138abe925cfa18b33cfaa22f (diff) | |
parent | 3b2a1ff716a0b927731ca75d9538d6da54637b6b (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/CMakeLists.txt | 4 | ||||
-rw-r--r-- | source/blender/draw/engines/image/image_drawing_mode.hh | 1 | ||||
-rw-r--r-- | source/blender/draw/engines/image/image_shader.cc | 6 | ||||
-rw-r--r-- | source/blender/draw/engines/image/image_shader_params.hh | 2 | ||||
-rw-r--r-- | source/blender/draw/engines/image/shaders/image_engine_frag.glsl (renamed from source/blender/draw/engines/image/shaders/engine_image_frag.glsl) | 23 | ||||
-rw-r--r-- | source/blender/draw/engines/image/shaders/image_engine_vert.glsl (renamed from source/blender/draw/engines/image/shaders/engine_image_vert.glsl) | 7 | ||||
-rw-r--r-- | source/blender/draw/engines/image/shaders/infos/engine_image_info.hh | 21 | ||||
-rw-r--r-- | source/blender/gpu/CMakeLists.txt | 1 |
8 files changed, 28 insertions, 37 deletions
diff --git a/source/blender/draw/CMakeLists.txt b/source/blender/draw/CMakeLists.txt index b40fc88a076..f4e57d9521b 100644 --- a/source/blender/draw/CMakeLists.txt +++ b/source/blender/draw/CMakeLists.txt @@ -518,8 +518,8 @@ set(GLSL_SRC engines/overlay/shaders/wireframe_frag.glsl engines/overlay/shaders/xray_fade_frag.glsl - engines/image/shaders/engine_image_frag.glsl - engines/image/shaders/engine_image_vert.glsl + engines/image/shaders/image_engine_frag.glsl + engines/image/shaders/image_engine_vert.glsl ) set(GLSL_C) diff --git a/source/blender/draw/engines/image/image_drawing_mode.hh b/source/blender/draw/engines/image/image_drawing_mode.hh index 8eb98b40492..f501bc78b11 100644 --- a/source/blender/draw/engines/image/image_drawing_mode.hh +++ b/source/blender/draw/engines/image/image_drawing_mode.hh @@ -94,7 +94,6 @@ template<typename TextureMethod> class ScreenSpaceDrawingMode : public AbstractD DRWShadingGroup *shgrp = DRW_shgroup_create(shader, instance_data->passes.image_pass); DRW_shgroup_uniform_vec2_copy(shgrp, "farNearDistances", sh_params.far_near); - DRW_shgroup_uniform_vec4_copy(shgrp, "color", ShaderParameters::color); DRW_shgroup_uniform_vec4_copy(shgrp, "shuffle", sh_params.shuffle); DRW_shgroup_uniform_int_copy(shgrp, "drawFlags", sh_params.flags); DRW_shgroup_uniform_bool_copy(shgrp, "imgPremultiplied", sh_params.use_premul_alpha); diff --git a/source/blender/draw/engines/image/image_shader.cc b/source/blender/draw/engines/image/image_shader.cc index 77cbaeec5a4..e3cb60c5511 100644 --- a/source/blender/draw/engines/image/image_shader.cc +++ b/source/blender/draw/engines/image/image_shader.cc @@ -64,11 +64,7 @@ GPUShader *IMAGE_shader_image_get() { IMAGE_Shaders *sh_data = &e_data.shaders; if (sh_data->image_sh == nullptr) { - sh_data->image_sh = DRW_shader_create_with_shaderlib(datatoc_engine_image_vert_glsl, - nullptr, - datatoc_engine_image_frag_glsl, - e_data.lib, - nullptr); + sh_data->image_sh = GPU_shader_create_from_info_name("image_engine_shader"); } return sh_data->image_sh; } diff --git a/source/blender/draw/engines/image/image_shader_params.hh b/source/blender/draw/engines/image/image_shader_params.hh index 46371c598f3..9f3da3f9e9e 100644 --- a/source/blender/draw/engines/image/image_shader_params.hh +++ b/source/blender/draw/engines/image/image_shader_params.hh @@ -35,8 +35,6 @@ #include "image_space.hh" struct ShaderParameters { - constexpr static float color[4] = {1.0f, 1.0f, 1.0f, 1.0f}; - int flags = 0; float shuffle[4]; float far_near[2]; diff --git a/source/blender/draw/engines/image/shaders/engine_image_frag.glsl b/source/blender/draw/engines/image/shaders/image_engine_frag.glsl index 298487baab2..b0ac7af457f 100644 --- a/source/blender/draw/engines/image/shaders/engine_image_frag.glsl +++ b/source/blender/draw/engines/image/shaders/image_engine_frag.glsl @@ -6,28 +6,11 @@ #define IMAGE_DRAW_FLAG_SHUFFLING (1 << 2) #define IMAGE_DRAW_FLAG_DEPTH (1 << 3) -uniform sampler2D imageTexture; - -uniform bool imgPremultiplied; -uniform int drawFlags; -uniform vec2 farNearDistances; -uniform vec4 color; -uniform vec4 shuffle; - -/* Maximum UV range. - * Negative UV coordinates and UV coordinates beyond maxUV would draw a border. */ -uniform vec2 maxUv; - -#define FAR_DISTANCE farNearDistances.x -#define NEAR_DISTANCE farNearDistances.y - #define Z_DEPTH_BORDER 1.0 #define Z_DEPTH_IMAGE 0.75 -in vec2 uv_screen; -in vec2 uv_image; - -out vec4 fragColor; +#define FAR_DISTANCE farNearDistances.x +#define NEAR_DISTANCE farNearDistances.y bool is_border(vec2 uv) { @@ -51,7 +34,7 @@ void main() } if ((drawFlags & IMAGE_DRAW_FLAG_SHUFFLING) != 0) { - tex_color = color * dot(tex_color, shuffle); + tex_color = vec4(dot(tex_color, shuffle)); } if ((drawFlags & IMAGE_DRAW_FLAG_SHOW_ALPHA) == 0) { tex_color.a = 1.0; diff --git a/source/blender/draw/engines/image/shaders/engine_image_vert.glsl b/source/blender/draw/engines/image/shaders/image_engine_vert.glsl index 0c106f48f4a..deefab655d2 100644 --- a/source/blender/draw/engines/image/shaders/engine_image_vert.glsl +++ b/source/blender/draw/engines/image/shaders/image_engine_vert.glsl @@ -1,12 +1,5 @@ #pragma BLENDER_REQUIRE(common_view_lib.glsl) -in vec2 pos; -in vec2 uv; - -/* Normalized screen space uv coordinates. */ -out vec2 uv_screen; -out vec2 uv_image; - void main() { vec3 image_pos = vec3(pos, 0.0); diff --git a/source/blender/draw/engines/image/shaders/infos/engine_image_info.hh b/source/blender/draw/engines/image/shaders/infos/engine_image_info.hh new file mode 100644 index 00000000000..1dd20a9a95b --- /dev/null +++ b/source/blender/draw/engines/image/shaders/infos/engine_image_info.hh @@ -0,0 +1,21 @@ +#include "gpu_shader_create_info.hh" + +GPU_SHADER_INTERFACE_INFO(image_engine_iface, "") + .smooth(Type::VEC2, "uv_screen") + .smooth(Type::VEC2, "uv_image"); + +GPU_SHADER_CREATE_INFO(image_engine_shader) + .vertex_in(0, Type::VEC2, "pos") + .vertex_in(1, Type::VEC2, "uv") + .vertex_out(image_engine_iface) + .fragment_out(0, Type::VEC4, "fragColor") + .push_constant(Type::VEC4, "shuffle") + .push_constant(Type::VEC2, "maxUv") + .push_constant(Type::VEC2, "farNearDistances") + .push_constant(Type::INT, "drawFlags") + .push_constant(Type::BOOL, "imgPremultiplied") + .sampler(0, ImageType::FLOAT_2D, "imageTexture") + .vertex_source("image_engine_vert.glsl") + .fragment_source("image_engine_frag.glsl") + .additional_info("draw_modelmat") + .do_static_compilation(true); diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt index 1219b04effa..2b6b28bd649 100644 --- a/source/blender/gpu/CMakeLists.txt +++ b/source/blender/gpu/CMakeLists.txt @@ -412,6 +412,7 @@ set(SHADER_CREATE_INFOS ../draw/engines/workbench/shaders/infos/workbench_shadow_info.hh ../draw/engines/workbench/shaders/infos/workbench_transparent_resolve_info.hh ../draw/engines/workbench/shaders/infos/workbench_volume_info.hh + ../draw/engines/image/shaders/infos/engine_image_info.hh ../draw/intern/shaders/draw_fullscreen_info.hh ../draw/intern/shaders/draw_object_infos_info.hh ../draw/intern/shaders/draw_view_info.hh |