Commit Graph

603 Commits

Author SHA1 Message Date
Frank
53ecf16ab1 bugfix: make freeze work again
the last commit had a side-effect that cause "freeze" to first blank the screen, then freeze.
2024-11-07 16:43:20 +01:00
Frank
d1541b520f Bugfix: remove ghost pixels when changing segment options
... transpose, mirror, reverse, grouping, spacing, size

* unlike AC WLED, when calling seg.fill(BLACK) from webserver context this usually has no effect --> added  markForBlank() that shedules segment blanking at the next drawing cycle
* fill previous segment with black when size, grouping or spacing changes
2024-11-07 14:36:39 +01:00
Frank
7fb3fe65b2 experimental: strict framerate limit for strip.show() 2024-11-06 13:19:54 +01:00
Frank
d53c0a31e9 FPS calculation minor improvement
seems to work better without rounding
2024-11-06 13:18:33 +01:00
Frank
7f3d43bc57 WS2812FX::service() fix for non-fastpath builds 2024-11-05 18:50:22 +01:00
Frank
a2e9e77ca7 setTargetFps with rounding 2024-11-05 18:07:17 +01:00
Frank
b793c7cb9c trying to stabilze FPS for Art-Net 2024-11-05 17:44:57 +01:00
Frank
68c4b830a6 legacy code cleanup 2024-11-04 14:17:59 +01:00
Frank
dc4964a491 small update
based on feedback from the PR to upstream
* support "0 FPS" meaning "unlimited"
* keep FRAMETIME_FIXED fixed
2024-11-04 13:47:05 +01:00
Frank
6bae356789 renaming
upstream has renamed "now" to "showNow" - so we follow
2024-11-01 17:17:54 +01:00
Frank
bf5fb9ccaa fix compile errors 2024-11-01 15:12:07 +01:00
Frank
7c0ecdf7c4 make "target FPS" work 2024-11-01 14:51:12 +01:00
Frank
85035e54e8 bugfix for random crash when changing effects 2024-11-01 13:32:50 +01:00
Frank
e652bd7064 do not restart effects after LEDs off/on 2024-10-27 17:26:04 +01:00
Frank
cff17861a4 bugfix: rest segments when leds are switched off/on
based on an idea from @blazoncek in 4cc2cc4ad4 (diff-749825f808f7ce1ce1108fffc7ed037085160a63cad32397135dfc0063494373R56)
2024-10-27 16:43:21 +01:00
Frank
54cc4cac08 Arc - gPC fix 2 by @Brandon502 2024-10-20 10:06:51 +02:00
Frank
a99a54c9fa cache SEGMENT
actually its just a minor speedup, at least with -O2
2024-10-20 01:06:18 +02:00
Frank
7c6178418a cache virtualLength() and some cleanup
speedup for 1D->2D mapping
2024-10-19 23:29:53 +02:00
Frank
670c621ffe Arc - gPC fix by @Brandon502
with fix for missing pixel on 8x32 and similar ratios.
2024-10-19 22:26:11 +02:00
Brandon502
e37afd0cb8 Expand1D Corner Fix, Arc gPC fix.
Only matripix is not working correctly on arc. Effect starts at the end of the strip and use gPC to fill to beginning.
2024-10-16 18:12:56 -04:00
Brandon502
c1e75ac127 Expand1D Arc - No holes 2024-10-16 12:12:28 -04:00
Ewoud
33318dab25 Merge pull request #170 from MoonModules/license 2024-10-16 00:14:46 +02:00
Frank
22b16ab542 Align all licensing statements with EUPL-1.2 2024-10-14 21:52:52 +02:00
Frank
d67ba8451a S3: increase MAX_LEDS
S3 (opi PSRAM) can handle 128x128 pixels on HUB75.
2024-10-14 17:37:37 +02:00
Frank
a84216947b forgot one 2024-10-06 22:19:08 +02:00
Frank
e400720e40 correct code comment 2024-10-06 21:44:19 +02:00
Frank
8a0888ba88 Pinwheel update for 128x128 pixels 2024-10-06 21:38:09 +02:00
Frank
1656400746 bugfix for broken presets when segment name is very long
another off-by-one
2024-10-06 21:32:07 +02:00
Frank
2aa0d47036 adding getPixelColorRestored()
similar to getPixelColor, but returns the original pixel without brightness adjustments.

* getPixelColorRestored is used by segment::sPC and segment::gPC
* getPixelColor is still used by ABL (auto brightness limiter)
2024-09-28 02:43:12 +02:00
Frank
b245112d2a some drawing speedups
* speedups for addPixelColorXY, fadePixelColorXY, fadeToBlackBy
2024-09-28 02:19:53 +02:00
Frank
ffc9ec3cfb exclude HUB75 from auto brightness limiter
For a 64x64 panel, ABL assumes 4A of standby current. This does not make any sense.
2024-09-22 17:07:26 +02:00
Frank
80a2f2b85b minor corrections
* fix some override problems bus_manager (canShow() must not be const!!!)
* fixing some "comparing integer with different signedness" warnings
2024-09-21 19:41:51 +02:00
Troy
645b45a22d Added WLEDMM_NO_MAP_RESET
Allows use of ledmaps with segments without messing with the segments. LEDs can remain remapped even with segments on top of them. (For Dom)
2024-09-16 14:19:06 -04:00
Frank
fc2e1263cb new option don't use effect-specific palette or mapping modes
* new setting in UI page: "Don't use effect palette and segment parameters" - only meaningful when "Use effect default parameters" is enabled, too.

--> effect slider defaults will still be applied, however palette, 1D2D mapping mode and other segment settings will not change.
2024-09-06 13:06:28 +02:00
Frank
bef964dcba bugfix: prevent clearing of segment settings when changing effects
in multi-segment setups, the segment options reverse, reverseY, mirror, and mirrorY were accidentally overwritten  when changing effects.
2024-09-06 12:54:27 +02:00
Frank
b47c55db90 fix 8266 builds
wled00/FX_fcn.cpp:974:16: error: '_isSuperSimpleSegment' was not declared in this scope
2024-08-18 13:21:55 +02:00
Troy
1ef13c2077 Arc 1D Expand uses drawArc if the segment is not "super simple"
WLEDMM: drawArc() is faster if it's NOT "super simple" as the regular M12_pArc code can do "useSymmetry" to speed things along on larger 2D layouts, but a more "complicated" segment likely uses mirroring which generates a symmetry speed-up, or other things which mean less pixels are calculated.
2024-08-17 13:05:23 -04:00
Troy
f23df9dfbc Revert functionality change to M12_pArc
Left the new code in for reference
2024-08-17 08:28:08 -04:00
Frank
030a7cee53 another small speedup, and segment stability improvement
* removed a few sanity check that are done again later in getPixelColor
* stability: prevent crashes when changing segments settings or effect options
2024-08-16 17:54:11 +02:00
Frank
90dd048878 revert fadeToBlackBy optimization
causes problems with overlay text (scrolling text)
2024-08-08 17:41:05 +02:00
Frank
b2844645c6 pinwheel mapping XXL - no holes at 64x64 2024-08-07 16:53:25 +02:00
Frank
7f9da309c9 const const const
adding hints for the compiler for optimization.
In case your custom build complains about "const", just remove the keyword. based on e82f38e277, but going further :-)

* "const" class functions : function does not modify any class attributes ( --> "this" becomes const)

* __attribute__((pure)) :  function return value depends only on the parameters and/or global variables. The function does not modify any global or static variables.
* __attribute__((const)) : function only examines arguments (no globals), and has no effects except the return value. This slightly more strict than "pure"
* hot: tells the compiler "this functions is called very often"
* cold: the opposite of hot
2024-08-07 14:58:38 +02:00
Frank
42919f9daf blob effect improvements, and a dirty hack for HUB75 double buffer
* mode_2Dfloatingblobs() improvements for large panels
* Segment::fillCircle() speed optimizations
* HUB75 hack (disabled by default): skip first fill(BLACK) when using double buffering (as the buffer gets cleared after each frame)
2024-08-06 15:53:46 +02:00
Frank
5240c3450b Segment drawing optimizations (FASTPATH only)
* cache width, height, and a few more values that are normally re-calculated for each pixel
* make normal sPC a bit faster
* Segment::fade_out() optimization

--> only active in FASTPATH mode, to preserve flash on small devices (8266)
--> code still needs some polishing
--> up to 20% speedup with some 2D effects (esp32,  flash qio 80Mhz, -O2)
2024-08-05 21:30:25 +02:00
Frank
5f4834dec4 small improvements
* optimized fadeToBlackBy() - don't repaint unchanged pixels
* made MIN_HEAP_SIZE configurable by build_flags
* specific error message when not enough memory for LEDs buffer
2024-08-05 17:06:38 +02:00
Frank
9260111cd7 use drawLine for 1D2D mapping modes
thanks @troyhacks for providing the idea.
2024-07-16 23:22:50 +02:00
Frank
7a83f1759d removed a/b testing via Reverse X (segment option) 2024-07-16 20:26:52 +02:00
Frank
961040849e speedup for pinwheel mapping
fast sPC() in pinwheel mapping -> ~10% speedup
2024-07-15 18:06:25 +02:00
Frank
6aaf7a908d more sPC optimizations
* made setPixelColorXY_fast private
* optimized Segment::fill() to use setPixelColorXY_fast
* "bar" 1D expand optimization
2024-07-14 23:49:37 +02:00
Frank
1b9b2dcffe minimal Auto segment creation bugfix
based on 13bfda56ef
2024-05-18 21:49:09 +02:00