the compilation fails with tons of errors if you try to compile using WLED_DISABLE_2D
"message": "enclosing class of constexpr non-static member function 'bool Segment::is2D() const' is not a literal type",
"LineNumber": 766,
PlatformIO doesn't clean out the libdir when usermods are disabled, so
they still appear in the LibBuilders() set. Ensure that we validate
only usermods that were actually deps for the build.
- standard is to copy the source segment buffer
- added option to copy "full stack" reading the last rendered frame: this should not be used with an overlapping "copy segment" as it copies itself (unless the user want that effect to happen)
the idea for full stack copy is:
- create a virtual steip/panel besides the physical LEDs (I used DDP with IP 0.0.0.0 as a test)
- Create a layered segment stack on the virtual strip/panel
- On the physical LED segment: copy FX of the virtual segment with "full stack" checked
The full-stack copy is not the cleanest most user-friendly solution. Its a bit convoluted to use and also lags one frame behind as it copies from the global frame buffer which is updated after all segments were rendered. Although not a perfect solution for a full-stack segment copy, I still think the option should be available: on larger setups with say 3-overlapping layers, a copy would require another 3 layers for each segment that the original is being copied to, eating up way more ram. AND: the option of just copying each segment is still available.
Particle System depends on linear brightness distribution, gamma corrected values are non-linear.
- added invers gamma table
- reversing gamma after brightness distribution makes it linear once again
- fixed "jumpyness" by improving offset calculation resolution
- added palette support
- added two rendering modes for use with palette: one uses hue-mapping, one uses brightness mapping
- added alternate animation mode (from initial source)
- extended scaling: zoom checkmark (depends on matrix size)
Correct issues with usermods not being linked.
- Explicitly set libArchive: false in usermod library.json files
- Fix up symlink path generation on Windows
- Add validation script to report usermod linkage in resulting binary
- prevent settings change if not using private IP address or same subnet
- prevent OTA from differnet subnet if PIN is not set
- ability to revert firmware
Check the safest possible location for final information on what
components are actually being linked in. This demonstrates a safe
approach that works even for out-of-tree modules.
Use a magic custom_usermods string instead of a magic environment
name; and disable the validation script as it triggers on the non-
platform-compatible mods.
Ensure all paths used in usermod symlinks are fully resolved, including
any case correctness issues on Windows. Apparently PlatformIO does
not handle symlink files correctly on Windows if there are case
differences between cwd and the resolved path.
The modern linker used with new platforms (ESP8266, ESP32 >v4) always
produces paths in the map file with slash; however the old linker for
the old ESP32 platform instead produces paths with backslash when
building on Windows. Match both types as a path separator when
scanning linked symbols.