FastLED 3.10.8
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 1064 of file blur.cpp.hpp.

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

References apply_pass(), apply_pass_alpha(), and fl::FL_NO_EXCEPT.

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

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