Page Menu
Home
Search
Configure Global Search
Log In
Paste
P2698
(An Untitled Masterwork)
Active
Public
Actions
Authored by
Jeroen Bakker (jbakker)
on Jan 5 2022, 3:31 PM.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Tags
None
Subscribers
None
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()
{
Event Timeline
Jeroen Bakker (jbakker)
created this paste.
Jan 5 2022, 3:31 PM
Log In to Comment