[Bf-blender-cvs] [eccfea7dd29] tmp-gpu-shader-descriptor-2: Add create info for gpu_shader_3D_image_modulate_alpha.

Jeroen Bakker noreply at git.blender.org
Wed Jan 5 15:41:07 CET 2022


Commit: eccfea7dd2947f281997adc97560d77ff479fa72
Author: Jeroen Bakker
Date:   Wed Jan 5 15:34:39 2022 +0100
Branches: tmp-gpu-shader-descriptor-2
https://developer.blender.org/rBeccfea7dd2947f281997adc97560d77ff479fa72

Add create info for gpu_shader_3D_image_modulate_alpha.

===================================================================

M	source/blender/gpu/CMakeLists.txt
M	source/blender/gpu/intern/gpu_shader.cc
A	source/blender/gpu/shaders/gpu_shader_3D_image_modulate_alpha_info.hh
M	source/blender/gpu/shaders/gpu_shader_3D_image_vert.glsl
M	source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl

===================================================================

diff --git a/source/blender/gpu/CMakeLists.txt b/source/blender/gpu/CMakeLists.txt
index d8ccc00af24..a02c93f7983 100644
--- a/source/blender/gpu/CMakeLists.txt
+++ b/source/blender/gpu/CMakeLists.txt
@@ -416,6 +416,8 @@ set(SHADER_CREATE_INFOS
 ../draw/intern/shaders/draw_view_info.hh
 ../draw/intern/shaders/draw_object_infos_info.hh
 shaders/gpu_shader_3D_flat_color_info.hh
+shaders/gpu_shader_3D_image_modulate_alpha_info.hh
+
 shaders/gpu_clip_planes_info.hh
 )
 
diff --git a/source/blender/gpu/intern/gpu_shader.cc b/source/blender/gpu/intern/gpu_shader.cc
index 4da3f0961f4..95879eb8e06 100644
--- a/source/blender/gpu/intern/gpu_shader.cc
+++ b/source/blender/gpu/intern/gpu_shader.cc
@@ -286,6 +286,8 @@ GPUShader *GPU_shader_create_from_info(const GPUShaderCreateInfo *_info)
   std::string resources = shader->resources_declare(info);
   char *shader_shared_utils = nullptr;
 
+  defines += "#define USE_GPU_SHADER_CREATE_INFO\n";
+
   Vector<char *> typedefs;
   for (auto filename : info.typedef_sources_) {
     typedefs.append(gpu_shader_dependency_get_source(filename.c_str()));
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_image_modulate_alpha_info.hh b/source/blender/gpu/shaders/gpu_shader_3D_image_modulate_alpha_info.hh
new file mode 100644
index 00000000000..853e94a4b1b
--- /dev/null
+++ b/source/blender/gpu/shaders/gpu_shader_3D_image_modulate_alpha_info.hh
@@ -0,0 +1,16 @@
+
+#include "gpu_shader_create_info.hh"
+
+GPU_SHADER_INTERFACE_INFO(tex_coord_interp_iface, "").smooth(Type::VEC2, "texCoord_interp");
+
+GPU_SHADER_CREATE_INFO(gpu_shader_3D_image_modulate_alpha)
+    .vertex_in(0, Type::VEC3, "pos")
+    .vertex_in(1, Type::VEC2, "texCoord")
+    .vertex_out(tex_coord_interp_iface)
+    .fragment_out(0, Type::VEC4, "fragColor")
+    .push_constant(0, Type::MAT4, "ModelViewProjectionMatrix")
+    .push_constant(16, Type::FLOAT, "alpha")
+    .sampler(0, ImageType::FLOAT_2D, "image", Frequency::PASS)
+    .vertex_source("gpu_shader_3D_image_vert.glsl")
+    .fragment_source("gpu_shader_image_modulate_alpha_frag.glsl")
+    .do_static_compilation(true);
diff --git a/source/blender/gpu/shaders/gpu_shader_3D_image_vert.glsl b/source/blender/gpu/shaders/gpu_shader_3D_image_vert.glsl
index 0fb8d06e317..908d442739a 100644
--- a/source/blender/gpu/shaders/gpu_shader_3D_image_vert.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_3D_image_vert.glsl
@@ -1,9 +1,11 @@
 
+#ifndef USE_GPU_SHADER_CREATE_INFO
 uniform mat4 ModelViewProjectionMatrix;
 
 in vec2 texCoord;
 in vec3 pos;
 out vec2 texCoord_interp;
+#endif
 
 void main()
 {
diff --git a/source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl b/source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl
index 613352b4ac8..ceebaae896d 100644
--- a/source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_image_modulate_alpha_frag.glsl
@@ -1,9 +1,11 @@
 
+#ifndef USE_GPU_SHADER_CREATE_INFO
 in vec2 texCoord_interp;
 out vec4 fragColor;
 
 uniform float alpha;
 uniform sampler2D image;
+#endif
 
 void main()
 {



More information about the Bf-blender-cvs mailing list