106 const rcti &buffer_area,
107 const rcti &iterated_area,
109 : area_(iterated_area), is_built_(
false)
112 iterator_.x = iterated_area.
xmin;
113 iterator_.y = iterated_area.
ymin;
114 iterator_.x_start_ = iterated_area.
xmin;
115 iterator_.x_end_ = iterated_area.
xmax;
117 iterator_.out_elem_stride_ = elem_stride;
119 intptr_t out_row_stride = buffer_width * elem_stride;
120 iterator_.out_rows_gap_ = out_row_stride -
BLI_rcti_size_x(&iterated_area) * elem_stride;
121 const int out_start_x = iterated_area.
xmin - buffer_area.
xmin;
122 const int out_start_y = iterated_area.
ymin - buffer_area.
ymin;
123 iterator_.out = output + (
intptr_t)out_start_y * out_row_stride +
124 (
intptr_t)out_start_x * elem_stride;
125 const T *out_row_end_ = iterator_.out +
127 iterator_.out_end_ = out_row_end_ +