FastLED 3.9.15
Loading...
Searching...
No Matches

◆ hpass_row()

template<int R, typename RGB_T, typename acc_t, bool ApplyAlpha, typename AlphaT>
FL_ALWAYS_INLINE void fl::gfx::blur_detail::hpass_row ( RGB_T * pad,
RGB_T * out,
int w,
AlphaT alpha )

Definition at line 1063 of file blur.cpp.hpp.

1063 {
1064#if defined(FL_IS_AVR)
1065 if (ApplyAlpha)
1066 apply_pass_alpha_1ch<R>(pad, out, w, 1, alpha);
1067 else
1068 apply_pass_1ch<R>(pad, out, w, 1);
1069#else
1070 // SIMD fast path: u8-channel (CRGB), no alpha on this pass.
1071 if (sizeof(typename RGB_T::fp) == 1 && !ApplyAlpha) {
1072 constexpr int S = (int)sizeof(RGB_T);
1073 const int nbytes = w * S;
1074 const u8 *pb = (const u8 *)pad;
1075 u8 *ob = (u8 *)out;
1077 pb, S, ob, nbytes, (u8 *)(pad + 2 * R + w), w);
1078 } else if (ApplyAlpha) {
1079 apply_pass_alpha<R, RGB_T, acc_t>(pad, out, w, 1, alpha);
1080 } else {
1081 apply_pass<R, RGB_T, acc_t>(pad, out, w, 1);
1082 }
1083#endif
1084}
FL_NO_INLINE_IF_AVR static FL_OPTIMIZE_FUNCTION void apply_pass_alpha(const RGB_T *pad, RGB_T *out, int count, int stride, AlphaT alpha)
Definition blur.cpp.hpp:578
FL_NO_INLINE_IF_AVR static FL_OPTIMIZE_FUNCTION void apply_pass(const RGB_T *pad, RGB_T *out, int count, int stride)
Definition blur.cpp.hpp:563
unsigned char u8
Definition stdint.h:131

References apply_pass(), and apply_pass_alpha().

Referenced by fl::gfx::blurGaussianImpl().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: