17 switch (padding_method) {
21 return "compositor_pad_zero_float4";
29 return "compositor_pad_extend_float2";
31 return "compositor_pad_extend_float";
53 input.bind_as_texture(shader,
"input_tx");
57 output.allocate_texture(extended_domain);
58 output.bind_as_image(shader,
"output_img");
63 input.unbind_as_texture();
74 output.allocate_texture(extended_domain);
76 switch (padding_method) {
78 switch (
input.type()) {
81 output.store_pixel(texel, input.load_pixel_zero<float4>(texel - size));
89 switch (
input.type()) {
92 output.store_pixel(texel, input.load_pixel_extended<float>(texel - size));
97 output.store_pixel(texel, input.load_pixel_extended<float2>(texel - size));
113 if (
input.is_single_value()) {
118 if (context.use_gpu()) {
#define BLI_assert_unreachable()
void GPU_shader_bind(blender::gpu::Shader *shader, const blender::gpu::shader::SpecializationConstants *constants_state=nullptr)
void GPU_shader_uniform_2iv(blender::gpu::Shader *sh, const char *name, const int data[2])
int pad[32 - sizeof(int)]
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
void compute_dispatch_threads_at_least(gpu::Shader *shader, int2 threads_range, int2 local_size=int2(16))
static void zero_pad_gpu(Context &context, const Result &input, Result &output, const int2 size, const PaddingMethod padding_method)
static void zero_pad_cpu(const Result &input, Result &output, const int2 size, const PaddingMethod padding_method)
void parallel_for(const int2 range, const Function &function)
static const char * get_shader_name(const int distance)
VecBase< int32_t, 2 > int2