|
| template<typename Coord> |
| Coord | aaRatio (Coord num, Coord denom, Coord inv_denom) |
| | Compute num/denom using the best strategy for the Coord type:
|
| |
| template<typename PixelT, bool Overwrite> |
| void | addPixelToBuffer (PixelT *pixels, int width, int height, int x, int y, const PixelT &color) |
| | Internal helper: add or set pixel to rectangular buffer with bounds checking Direct row-major indexing: pixels[y * width + x] Templated on Overwrite for compile-time dispatch (no per-pixel branch).
|
| |
| void | blur1d (CRGB *leds, u16 numLeds, fract8 blur_amount) FL_NOEXCEPT |
| | Legacy raw-pointer version of blur1d.
|
| |
| void | blur1d (fl::span< CRGB > leds, fract8 blur_amount) FL_NOEXCEPT |
| | One-dimensional blur filter (span version).
|
| |
| void | blur2d (Canvas< CRGB > &canvas, alpha8 blur_amount) FL_NOEXCEPT |
| | Two-dimensional blur filter (Canvas version, no XYMap).
|
| |
| void | blur2d (CRGB *leds, u8 width, u8 height, fract8 blur_amount) FL_NOEXCEPT FASTLED_DEPRECATED("Use blur2d(... |
| | Legacy version of blur2d, which does not require an XYMap but instead implicitly binds to XY() function.
|
| |
| void | blur2d (CRGB *leds, u8 width, u8 height, fract8 blur_amount, const XYMap &xymap) FL_NOEXCEPT |
| | Legacy raw-pointer version of blur2d.
|
| |
| void | blur2d (fl::span< CRGB > leds, u8 width, u8 height, fract8 blur_amount, const XYMap &xymap) FL_NOEXCEPT |
| | Two-dimensional blur filter (span version).
|
| |
| | BLUR_INST_F16 (0, 0, CRGB) BLUR_INST_F16(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F16 (0, 1, CRGB16) BLUR_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB | BLUR_INST_F16 (0, 2, CRGB) BLUR_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F16 (0, 3, CRGB16) BLUR_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_INST_F16 (0, 4, CRGB) BLUR_INST_F16(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 | BLUR_INST_F16 (1, 0, CRGB16) BLUR_INST_F16(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 | BLUR_INST_F16 (1, 1, CRGB16) BLUR_INST_F16(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F16 (1, 2, CRGB16) BLUR_INST_F16(2 |
| |
| CRGB CRGB CRGB | BLUR_INST_F16 (2, 0, CRGB) BLUR_INST_F16(3 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_INST_F16 (2, 1, CRGB) BLUR_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F16 (3, 0, CRGB16) BLUR_INST_F16(4 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 | BLUR_INST_F16 (3, 3, CRGB16) BLUR_INST_F16(4 |
| |
| CRGB CRGB CRGB CRGB | BLUR_INST_F16 (4, 0, CRGB) BLUR_INST_F16(0 |
| |
| CRGB CRGB | BLUR_INST_F16 (4, 4, CRGB) BLUR_INST_F16(1 |
| |
| | BLUR_INST_F8 (0, 0, CRGB) BLUR_INST_F8(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F8 (0, 1, CRGB16) BLUR_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB | BLUR_INST_F8 (0, 2, CRGB) BLUR_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F8 (0, 3, CRGB16) BLUR_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_INST_F8 (0, 4, CRGB) BLUR_INST_F8(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 | BLUR_INST_F8 (1, 0, CRGB16) BLUR_INST_F8(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 | BLUR_INST_F8 (1, 1, CRGB16) BLUR_INST_F8(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F8 (1, 2, CRGB16) BLUR_INST_F8(2 |
| |
| CRGB CRGB CRGB | BLUR_INST_F8 (2, 0, CRGB) BLUR_INST_F8(3 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_INST_F8 (2, 1, CRGB) BLUR_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_INST_F8 (3, 0, CRGB16) BLUR_INST_F8(4 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 | BLUR_INST_F8 (3, 3, CRGB16) BLUR_INST_F8(4 |
| |
| CRGB CRGB CRGB CRGB | BLUR_INST_F8 (4, 0, CRGB) BLUR_INST_F8(0 |
| |
| CRGB CRGB | BLUR_INST_F8 (4, 4, CRGB) BLUR_INST_F8(1 |
| |
| | BLUR_MAPPED_INST_F16 (0, 0, CRGB) BLUR_MAPPED_INST_F16(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F16 (0, 1, CRGB16) BLUR_MAPPED_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F16 (0, 2, CRGB) BLUR_MAPPED_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F16 (0, 3, CRGB16) BLUR_MAPPED_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F16 (0, 4, CRGB) BLUR_MAPPED_INST_F16(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F16 (1, 0, CRGB16) BLUR_MAPPED_INST_F16(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 | BLUR_MAPPED_INST_F16 (1, 1, CRGB16) BLUR_MAPPED_INST_F16(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F16 (1, 2, CRGB16) BLUR_MAPPED_INST_F16(2 |
| |
| CRGB CRGB CRGB | BLUR_MAPPED_INST_F16 (2, 0, CRGB) BLUR_MAPPED_INST_F16(3 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F16 (2, 1, CRGB) BLUR_MAPPED_INST_F16(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F16 (3, 0, CRGB16) BLUR_MAPPED_INST_F16(4 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 | BLUR_MAPPED_INST_F16 (3, 3, CRGB16) BLUR_MAPPED_INST_F16(4 |
| |
| CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F16 (4, 0, CRGB) BLUR_MAPPED_INST_F16(0 |
| |
| CRGB CRGB | BLUR_MAPPED_INST_F16 (4, 4, CRGB) BLUR_MAPPED_INST_F16(1 |
| |
| | BLUR_MAPPED_INST_F8 (0, 0, CRGB) BLUR_MAPPED_INST_F8(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F8 (0, 1, CRGB16) BLUR_MAPPED_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F8 (0, 2, CRGB) BLUR_MAPPED_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F8 (0, 3, CRGB16) BLUR_MAPPED_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F8 (0, 4, CRGB) BLUR_MAPPED_INST_F8(1 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F8 (1, 0, CRGB16) BLUR_MAPPED_INST_F8(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 | BLUR_MAPPED_INST_F8 (1, 1, CRGB16) BLUR_MAPPED_INST_F8(2 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F8 (1, 2, CRGB16) BLUR_MAPPED_INST_F8(2 |
| |
| CRGB CRGB CRGB | BLUR_MAPPED_INST_F8 (2, 0, CRGB) BLUR_MAPPED_INST_F8(3 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F8 (2, 1, CRGB) BLUR_MAPPED_INST_F8(0 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 CRGB16 CRGB16 | BLUR_MAPPED_INST_F8 (3, 0, CRGB16) BLUR_MAPPED_INST_F8(4 |
| |
| CRGB CRGB CRGB CRGB CRGB CRGB CRGB CRGB16 CRGB16 | BLUR_MAPPED_INST_F8 (3, 3, CRGB16) BLUR_MAPPED_INST_F8(4 |
| |
| CRGB CRGB CRGB CRGB | BLUR_MAPPED_INST_F8 (4, 0, CRGB) BLUR_MAPPED_INST_F8(0 |
| |
| CRGB CRGB | BLUR_MAPPED_INST_F8 (4, 4, CRGB) BLUR_MAPPED_INST_F8(1 |
| |
| void | blurColumns (Canvas< CRGB > &canvas, alpha8 blur_amount) FL_NOEXCEPT |
| | Perform a blur1d() on every column of a rectangular matrix (Canvas version).
|
| |
| void | blurColumns (CRGB *leds, u8 width, u8 height, fract8 blur_amount, const XYMap &xymap) FL_NOEXCEPT |
| | Legacy raw-pointer version of blurColumns.
|
| |
| void | blurColumns (fl::span< CRGB > leds, u8 width, u8 height, fract8 blur_amount, const XYMap &xymap) FL_NOEXCEPT |
| | Perform a blur1d() on every column of a rectangular matrix (span version).
|
| |
| template<int hRadius, int vRadius, typename RGB_T> |
| void | blurGaussian (Canvas< RGB_T > &canvas) FL_NOEXCEPT |
| | Convenience overload with no dimming.
|
| |
| template<int hRadius, int vRadius, typename RGB_T> |
| void | blurGaussian (Canvas< RGB_T > &canvas, alpha16 dimFactor) FL_NOEXCEPT |
| | Higher-precision dim overload (UNORM16).
|
| |
| template<int hRadius, int vRadius, typename RGB_T> |
| void | blurGaussian (Canvas< RGB_T > &canvas, alpha8 dimFactor) FL_NOEXCEPT |
| | Compile-time Gaussian blur with independent H/V radii.
|
| |
| template<int hRadius, int vRadius, typename RGB_T> |
| void | blurGaussian (CanvasMapped< RGB_T > &canvas) FL_NOEXCEPT |
| |
| template<int hRadius, int vRadius, typename RGB_T> |
| void | blurGaussian (CanvasMapped< RGB_T > &canvas, alpha16 dimFactor) FL_NOEXCEPT |
| | Higher-precision dim overload for CanvasMapped (UNORM16).
|
| |
| template<int hRadius, int vRadius, typename RGB_T> |
| void | blurGaussian (CanvasMapped< RGB_T > &canvas, alpha8 dimFactor) FL_NOEXCEPT |
| | XYMap-backed Gaussian blur (non-optimized, per-pixel path).
|
| |
| template<int hRadius, int vRadius, typename RGB_T, typename AlphaT> |
| FL_OPTIMIZE_FUNCTION void | blurGaussianImpl (Canvas< RGB_T > &canvas, AlphaT alpha) |
| |
| template<int hRadius, int vRadius, typename RGB_T, typename AlphaT> |
| FL_OPTIMIZE_FUNCTION void | blurGaussianMappedImpl (CanvasMapped< RGB_T > &canvas, AlphaT alpha) |
| |
| void | blurRows (Canvas< CRGB > &canvas, alpha8 blur_amount) FL_NOEXCEPT |
| | Perform a blur1d() on every row of a rectangular matrix (Canvas version).
|
| |
| void | blurRows (CRGB *leds, u8 width, u8 height, fract8 blur_amount, const XYMap &xymap) FL_NOEXCEPT |
| | Legacy raw-pointer version of blurRows.
|
| |
| void | blurRows (fl::span< CRGB > leds, u8 width, u8 height, fract8 blur_amount, const XYMap &xymap) FL_NOEXCEPT |
| | Perform a blur1d() on every row of a rectangular matrix (span version).
|
| |
| template<typename T> |
| fl::u8 | coordToU8 (T alpha) |
| | sqrt is provided by fl::sqrt overloads in math.h for:
|
| |
| template<> |
| fl::u8 | coordToU8< double > (double alpha) |
| |
| template<> |
| fl::u8 | coordToU8< fl::s16x16 > (fl::s16x16 alpha) |
| |
| template<> |
| fl::u8 | coordToU8< float > (float alpha) |
| |
| template<> |
| fl::u8 | coordToU8< int > (int alpha) |
| |
| template<typename PixelT, typename Coord> |
| void | drawDisc (Canvas< PixelT > &canvas, const PixelT &color, Coord cx, Coord cy, Coord r, fl::DrawMode mode=fl::DrawMode::DRAW_MODE_BLEND) FL_NOEXCEPT |
| |
| template<typename PixelT, typename Coord> |
| void | drawLine (Canvas< PixelT > &canvas, const PixelT &color, Coord x0, Coord y0, Coord x1, Coord y1, fl::DrawMode mode) |
| | ============================================================================
|
| |
| template<typename PixelT, typename Coord> |
| void | drawRing (Canvas< PixelT > &canvas, const PixelT &color, Coord cx, Coord cy, Coord r, Coord thickness, fl::DrawMode mode=fl::DrawMode::DRAW_MODE_BLEND) FL_NOEXCEPT |
| |
| template<typename PixelT, typename Coord> |
| void | drawStrokeLine (Canvas< PixelT > &canvas, const PixelT &color, Coord x0, Coord y0, Coord x1, Coord y1, Coord thickness, LineCap cap, fl::DrawMode mode=fl::DrawMode::DRAW_MODE_BLEND) FL_NOEXCEPT |
| |
| template<typename T> |
| T | fromFrac (int p, int q) |
| | Convert rational p/q to Coord without float.
|
| |
| template<> |
| fl::s16x16 | fromFrac< fl::s16x16 > (int p, int q) |
| |
| template<typename T> |
| T | fromInt (int n) |
| | Convert an integer to Coord without float intermediate.
|
| |
| template<> |
| fl::s16x16 | fromInt< fl::s16x16 > (int n) |
| |
| template<typename T> |
| T | halfOf (T val) |
| | Divide Coord by 2 using shift (avoids expensive division on embedded).
|
| |
| template<> |
| double | halfOf< double > (double val) |
| |
| template<> |
| fl::s16x16 | halfOf< fl::s16x16 > (fl::s16x16 val) |
| |
| template<> |
| float | halfOf< float > (float val) |
| |
| template<> |
| int | halfOf< int > (int val) |
| |
| template<typename T> |
| int | toInt (const T &val) |
| | Helper to convert any coordinate type to int Supports: s16x16 (via to_int()), float, int, and other arithmetic types.
|
| |
| template<> |
| int | toInt< double > (const double &val) |
| |
| template<> |
| int | toInt< float > (const float &val) |
| |
| template<> |
| int | toInt< int > (const int &val) |
| |