Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOmar Emara <mail@OmarEmara.dev>2022-01-03 23:50:22 +0300
committerOmar Emara <mail@OmarEmara.dev>2022-01-06 19:19:50 +0300
commit610b67e13ba1404d9b3196950b6dbbb552869cbb (patch)
treefac63bc5ffbe679dfdd3a9be9dda4434980c89be /source/blender/draw/engines
parent65272b80e4d9bbea62031e319726bf8405f80b51 (diff)
Viewport Compositor: Average RGB for link conversion
This patch changes the link conversion operation for the compositor shader to be an RGB average to match the Blender compositor. Compositor shaders are now marked with a COMPOSITOR_SHADER definition.
Diffstat (limited to 'source/blender/draw/engines')
-rw-r--r--source/blender/draw/engines/compositor/compositor_shader.cc10
-rw-r--r--source/blender/draw/engines/compositor/compositor_shader.hh1
2 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/draw/engines/compositor/compositor_shader.cc b/source/blender/draw/engines/compositor/compositor_shader.cc
index 3db6bdee6e8..d9e8e4b5f79 100644
--- a/source/blender/draw/engines/compositor/compositor_shader.cc
+++ b/source/blender/draw/engines/compositor/compositor_shader.cc
@@ -77,6 +77,14 @@ char *ShaderModule::pass_shader_code_frag_get(const GPUCodegenOutput *codegen,
return DRW_shader_library_create_shader_string(shader_lib_, output.c_str());
}
+char *ShaderModule::pass_shader_code_defs_get()
+{
+ std::string defines = "";
+ defines += "#define COMPOSITOR_SHADER\n";
+
+ return BLI_strdup(defines.c_str());
+}
+
/* WATCH: This can be called from another thread! Needs to not touch the shader module in any
* thread unsafe manner. */
GPUShaderSource ShaderModule::pass_shader_code_generate(const GPUCodegenOutput *codegen,
@@ -86,7 +94,7 @@ GPUShaderSource ShaderModule::pass_shader_code_generate(const GPUCodegenOutput *
source.vertex = pass_shader_code_vert_get(codegen, gpumat);
source.fragment = pass_shader_code_frag_get(codegen, gpumat);
source.geometry = nullptr;
- source.defines = nullptr;
+ source.defines = pass_shader_code_defs_get();
return source;
}
diff --git a/source/blender/draw/engines/compositor/compositor_shader.hh b/source/blender/draw/engines/compositor/compositor_shader.hh
index ae7cd70eda9..4ab92534c41 100644
--- a/source/blender/draw/engines/compositor/compositor_shader.hh
+++ b/source/blender/draw/engines/compositor/compositor_shader.hh
@@ -40,6 +40,7 @@ class ShaderModule {
private:
char *pass_shader_code_vert_get(const GPUCodegenOutput *codegen, GPUMaterial *gpumat);
char *pass_shader_code_frag_get(const GPUCodegenOutput *codegen, GPUMaterial *gpumat);
+ char *pass_shader_code_defs_get();
};
} // namespace blender::compositor