1132 {
1133 const int w = canvas.
width;
1134 const int h = canvas.
height;
1135 if (w <= 0 || h <= 0)
1136 return;
1137
1139
1140
1141
1143
1145
1146
1147 if (hRadius == 0 && vRadius == 0) {
1148 if (applyAlpha) {
1149 RGB_T *pixels = canvas.
pixels;
1150 for (int i = 0; i < w * h; ++i) {
1151 RGB_T &p = pixels[i];
1152 p = P::make(P::ch(p.r), P::ch(p.g), P::ch(p.b), alpha);
1153 }
1154 }
1155 return;
1156 }
1157
1160 RGB_T *pad = padbuf.
data();
1161 RGB_T *pixels = canvas.
pixels;
1162
1163
1164 if (hRadius > 0) {
1165
1168
1169 for (
int y = 0;
y < h; ++
y) {
1170 RGB_T *row = pixels +
y * w;
1172
1173 if (vRadius == 0 && applyAlpha)
1175 pad, row, w, alpha);
1176 else
1178 pad, row, w, alpha);
1179 }
1180 }
1181
1182
1183 if (vRadius > 0) {
1184 if (applyAlpha)
1186 pixels, w, h, pad, alpha);
1187 else
1189 pixels, w, h, pad, alpha);
1190 }
1191}
const T * data() const FL_NO_EXCEPT
#define FL_BUILTIN_MEMCPY(dest, src, n)
#define FL_BUILTIN_MEMSET(dest, val, n)
static void vpass_full(RGB_T *pixels, int w, int h, RGB_T *scratch, AlphaT alpha) FL_NO_EXCEPT
static fl::span< RGB_T > get_padbuf(int minSize) FL_NO_EXCEPT
FL_ALWAYS_INLINE void hpass_row(RGB_T *pad, RGB_T *out, int w, AlphaT alpha) FL_NO_EXCEPT
static int compute_pad_size(int w, int h) FL_NO_EXCEPT
constexpr AlphaT alpha_identity() FL_NO_EXCEPT
typename conditional< B, T, F >::type conditional_t
FASTLED_FORCE_INLINE fl::u8 P(fl::u8 x) FL_NO_EXCEPT