25 for (
size_t i = 0; i <
mLayers.size(); ++i) {
43 Fx2dPtr fx = Fx2dPtr::NoTracking(layer);
62 uint8_t blur_amount = it->blur_amount;
63 if (blur_amount > 0) {
65 uint8_t blur_passes =
MAX(1, it->blur_passes);
66 for (uint8_t i = 0; i < blur_passes; ++i) {
77 uint16_t width =
mXyMap.getWidth();
78 uint16_t height =
mXyMap.getHeight();
82 for (uint8_t i = 0; i < blur_passes; ++i) {
98 uint8_t blur_amount =
p.blur_amount;
99 uint8_t blur_passes =
p.blur_passes;
101 if (layer.fx == fx) {
102 layer.blur_amount = blur_amount;
103 layer.blur_passes = blur_passes;
108 FASTLED_WARN(
"Fx2d not found in Blend2d::setBlurParams");
114 Fx2dPtr fxPtr = Fx2dPtr::NoTracking(fx);
XYMap xymap(WIDTH, HEIGHT, SERPENTINE)
uint8_t mGlobalBlurPasses
fl::Str fxName() const override
Blend2d(const XYMap &xymap)
void add(Fx2dPtr layer, const Params &p=Params())
uint8_t mGlobalBlurAmount
bool setParams(Fx2dPtr fx, const Params &p)
HeapVector< Entry > mLayers
void draw(DrawContext context) override
uint16_t xyMap(uint16_t x, uint16_t y) const
static XYMap constructRectangularGrid(uint16_t width, uint16_t height, uint16_t offset=0)
void blur2d(CRGB *leds, uint8_t width, uint8_t height, fract8 blur_amount, const XYMap &xymap)
Two-dimensional blur filter.
@ DRAW_MODE_BLEND_BY_MAX_BRIGHTNESS
Implements a simple red square effect for 2D LED grids.
static FASTLED_NAMESPACE_BEGIN uint8_t const p[]
Declares classes for managing logical groups of LEDs.
Representation of an RGB pixel (Red, Green, Blue)
UISlider blurAmount("Global Blur Amount", 0, 0, 172, 1)
UISlider blurPasses("Global Blur Passes", 1, 1, 10, 1)