[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