diff options
author | Omar Emara <mail@OmarEmara.dev> | 2022-01-03 23:50:22 +0300 |
---|---|---|
committer | Omar Emara <mail@OmarEmara.dev> | 2022-01-06 19:19:50 +0300 |
commit | 610b67e13ba1404d9b3196950b6dbbb552869cbb (patch) | |
tree | fac63bc5ffbe679dfdd3a9be9dda4434980c89be /source/blender/draw/engines | |
parent | 65272b80e4d9bbea62031e319726bf8405f80b51 (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.cc | 10 | ||||
-rw-r--r-- | source/blender/draw/engines/compositor/compositor_shader.hh | 1 |
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 |