75 gboolean valid =
FALSE;
77 GList *source_iter = NULL;
78 for(GList *iter = g_list_first(
pipe->
nodes); iter; iter = g_list_next(iter))
81 if(candidate->module == target_module) target_piece = candidate;
82 if((
IS_NULL_PTR(source_iter)) && (!strcmp(candidate->module->op,
"detailmask")) && candidate->
enabled)
89 if(!valid)
return NULL;
102 for(GList *iter = g_list_next(source_iter); iter; iter = g_list_next(iter))
108 if(module->module->distort_mask
109 && !(!strcmp(module->module->op,
"finalscale")
110 && module->roi_in.width == 0
111 && module->roi_in.height == 0))
114 (
size_t)module->roi_out.width * module->roi_out.height, 0);
116 module->roi_in.width, module->roi_in.height,
117 module->roi_out.width, module->roi_out.height);
118 module->module->distort_mask(module->module, (dt_dev_pixelpipe_t *)pipe, module, inmask, tmp,
119 &module->roi_in, &module->roi_out);
123 current_roi =
module->roi_out;
125 else if(!module->module->distort_mask
126 && (module->roi_in.width != module->roi_out.width
127 || module->roi_in.height != module->roi_out.height
128 || module->roi_in.x != module->roi_out.x
129 || module->roi_in.y != module->roi_out.y))
130 fprintf(stderr,
"FIXME: module `%s' changed the roi from %d x %d @ %d / %d to %d x %d | %d / %d but doesn't have "
131 "distort_mask() implemented!\n", module->module->op, module->roi_in.width,
132 module->roi_in.height, module->roi_in.x, module->roi_in.y,
133 module->roi_out.width, module->roi_out.height, module->roi_out.x,
136 if(module->module == target_module)
break;
145 || current_roi.
x != target_piece->
roi_out.
x
146 || current_roi.
y != target_piece->
roi_out.
y))
void dt_interpolation_resample_roi_1c(const struct dt_interpolation *itor, float *out, const dt_iop_roi_t *const roi_out, const float *const in, const dt_iop_roi_t *const roi_in)
void void void dt_vprint(dt_debug_thread_t thread, const char *msg,...) __attribute__((format(printf
dt_print() that additionally requires DT_DEBUG_VERBOSE to be enabled, i.e. both -d <channel> and -d v...
gboolean dt_dev_pixelpipe_cache_peek(const uint64_t hash, void **data, dt_pixel_cache_entry_t **entry, const int preferred_devid, void **cl_mem_output)
Non-owning lookup of an existing cache line.
gboolean dt_dev_pixelpipe_rawdetail_mask_check_hit(dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const uint64_t output_hash)
Whether a cached output of piece may stand for it, called before that output is looked up.