after upstream PR https://github.com/Aircoookie/WLED/pull/3091, getPixelColor() does not restore brightness any more.
So all effects that rely on previous colors now need the LEDs buffer: getPixelColor, blenPixelColor, fade_out, blur, fadeToBlackBy
This change is an intermediate solution until upstream PR https://github.com/Aircoookie/WLED/pull/3280 is stable enough for merging.
cleanup:
- version increase
- clean up debug messages
- minor fixes in platformio.ini
- fix compilation with -D WLED_DISABLE_2D
helping the compiler to optimize:
- a few more __attribute__((pure))
- fx.cpp marked a few local functions as "static"
* re-enabled old detector which does not detect beats. However something bad may still be better than nothing...
* fixed a typo in RipplePeak and Waterfall effect, which cased wrong configuration of the peak detector.
resolves https://github.com/MoonModules/WLED/issues/43
* re-enabled old detector which does not detect beats. However something bad may still be better than nothing...
* fixed a typo in RipplePeak and Waterfall effect, which cased wrong configuration of the peak detector.
resolves https://github.com/MoonModules/WLED/issues/43
* added option to use original floating point code that features anti-aliasing.
Looks nice, but requires hardware floating point support (ESP32-S3, or "classic" ESP32 dual core).
* allow user to control rotation speed (c3 slider)
* preserve accuracy by performing division _after_ multiplication: " (i * speed) / 32", instead of " i * (speed / 32)"
* proper rounding of "map" results, for better visual appearance
* avoid division by zero in map() function
* added option to use original floating point code that features anti-aliasing.
Looks nice, but requires hardware floating point support (ESP32-S3, or "classic" ESP32 dual core).
* allow user to control rotation speed (c3 slider)
* preserve accuracy by performing division _after_ multiplication: " (i * speed) / 32", instead of " i * (speed / 32)"
* proper rounding of "map" results, for better visual appearance
* avoid division by zero in map() function
* getpixelcolor: attribute pure - it reads memory, but does not write
* some optimizations for SEGMENT.blur() and SEGMENT.fadeToBlackBy()
* FX.c:pp remove double calls to blur() and fade_out()
* FX.cpp: SEGMENT.setUpLeds() added to effects, to enable LED buffering (safe some time because getPixelColor does not need to access NeopixelBus)
* a few other optimizations to safe time and avoid "expensive" operations
* set I2C bus speed to 400kHz (default is 100Khz)
* a few other small optimizations and tweaks
* pio: esp32 V4 builds use "patch5" toolchain version, which contains a few bugfixes especially for memory management.
* make local functions "static"
* use fast_ int types where possible
* use native min/max instead of MIN/MAX macros. Macros evaluate each parameter TWICE!!
* adding __attribute__((pure)) and __attribute((const)) to help the compiler optimize
* ws.cpp: reduce max "live leds" in fastpath mode
* Soap, new 2D effect
* Fix Soap FX on matrices with edges < 8 LEDs
* Add palette support to Soap FX
---------
Co-authored-by: cschwinne <dev.aircoookie@gmail.com>