23 return "compositor_morphological_blur_dilate";
25 return "compositor_morphological_blur_erode";
44 input.bind_as_texture(shader,
"input_tx");
46 blurred_input.
bind_as_image(shader,
"blurred_input_img",
true);
48 Domain domain = input.domain();
52 input.unbind_as_texture();
#define BLI_assert_unreachable()
void GPU_shader_bind(GPUShader *shader)
struct GPUShader GPUShader
void bind_as_image(GPUShader *shader, const char *image_name, bool read=false) const
void unbind_as_image() const
static const char * get_shader(MorphologicalBlurOperation operation)
void symmetric_separable_blur(Context &context, Result &input, Result &output, float2 radius, int filter_type=R_FILTER_GAUSS, bool extend_bounds=false, bool gamma_correct=false)
static void apply_morphological_operator(Context &context, Result &input, Result &blurred_input, MorphologicalBlurOperation operation)
MorphologicalBlurOperation
void morphological_blur(Context &context, Result &input, Result &output, float2 radius, MorphologicalBlurOperation operation=MorphologicalBlurOperation::Erode, int filter_type=R_FILTER_GAUSS)
void compute_dispatch_threads_at_least(GPUShader *shader, int2 threads_range, int2 local_size=int2(16))