This unify the C++ and GLSL codebase style. The GLSL types are still in the backend compatibility layers to support python shaders. However, the C++ shader compilation layer doesn't have them to enforce correct type usage. Note that this is going to break pretty much all PRs in flight that targets shader code. Rel #137261 Pull Request: https://projects.blender.org/blender/blender/pulls/137369
28 lines
738 B
GLSL
28 lines
738 B
GLSL
/* SPDX-FileCopyrightText: 2023 Blender Authors
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
#include "gpu_shader_compositor_texture_utilities.glsl"
|
|
|
|
void main()
|
|
{
|
|
int2 texel = int2(gl_GlobalInvocationID.xy);
|
|
int2 output_texel = texel + lower_bound;
|
|
if (any(greaterThan(output_texel, upper_bound))) {
|
|
return;
|
|
}
|
|
|
|
float4 input_color = texture_load(input_tx, texel);
|
|
|
|
#if defined(DIRECT_OUTPUT)
|
|
float4 output_color = input_color;
|
|
#elif defined(OPAQUE_OUTPUT)
|
|
float4 output_color = float4(input_color.rgb, 1.0f);
|
|
#elif defined(ALPHA_OUTPUT)
|
|
float alpha = texture_load(alpha_tx, texel).x;
|
|
float4 output_color = float4(input_color.rgb, alpha);
|
|
#endif
|
|
|
|
imageStore(output_img, texel + lower_bound, output_color);
|
|
}
|