Commit Graph

87 Commits

Author SHA1 Message Date
Frank
42b247756a blur speedup
it seems that SEGMENT.blur() is the main bottleneck for many 2D effects.

This change optimizes performance of the function:
* avoid to re-write unchanged pixels
* early exit when blur_amount == 0 (=nothing to do)
* use _fast_ types where possible

I've seen up to 20% speedup with this change.
2023-07-06 19:51:37 +02:00
Frank
196779ffb6
XY: minor bugfix
properly handle width=0 OR height=0
2023-07-06 09:54:12 +02:00
Frank
406a254523 inactive segments robustness improvement
* Avoid uint16 underflow in width() and height(): stop > start is possible, and means "inactive segment".

Without these checks, it was possible that width() and height() produce VERY large values due to underflow.
2023-07-03 15:43:47 +02:00
Blaz Kristan
ef3c72a24f Fix for #3265 2023-06-23 23:49:54 +02:00
Blaz Kristan
65c584aeda 2D enhancement (internal)
- move() wrapping
- dual addPixelColorXY()
2023-04-27 17:31:55 +02:00
Blaz Kristan
7c186e4fcc Fix for smaller number of pixeld than matrix size. 2023-03-11 15:03:28 +01:00
Blaz Kristan
ddd32bd600 Multiple fixes.
- compiler warning fixes (gcc17)
- revert min heap size to 8k
- fix form submitting in 2D settings
- remove IRAM_ATTR for ESP8266 core 4.1.0
2023-03-05 22:56:14 +01:00
Blaz Kristan
92d2be3f5e Add ledmap names
Bugfix
- reset segments upon 2D ledmap allocation error
- fix invlid 2D segments
2023-02-14 17:11:58 +01:00
Blaz Kristan
eee9274098 Bugfix.
- compiler warnings
- loading nonexistent default ledmap in 2D will revert to built ledmap
- making autosements after 2D set up change
2023-02-11 18:41:30 +01:00
Blaz Kristan
8dd1f89225 Update.
- allow ledmap selection in UI
- upload gap file
- expand matrix generator
2023-02-10 19:49:43 +01:00
Blaz Kristan
e51f7bfbff LED matrix gaps. 2023-02-09 20:15:55 +01:00
Blaz Kristan
178c4d15b7 Bugfix.
- missing Transpose (seglen)
- reduce flickering for static text (ScrollingText FX #3050)
2023-01-24 16:35:31 +01:00
Blaz Kristan
57323af167 Reset segments on 2D set-up change. #3028
Bugfix for 2D segment creation.
2023-01-22 11:29:31 +01:00
Blaz Kristan
c6db901051 Added gradient to drawCharacter()
Ability to select gradient text on Scrolling Text FX.
2023-01-17 19:54:44 +01:00
Blaz Kristan
6fa5689aaf Bugfix.
- segment off
2023-01-12 20:36:50 +01:00
Blaz Kristan
e410de9552 Bugfix.
- fadePixelColorXY()
- clearing 2D segment on mirror or reverse change
- FX update (DNA Spiral, Colored bursts)
2023-01-12 19:13:07 +01:00
Blaz Kristan
27d7f5f190 Fixes.
Prevent flickering if segment off.
2023-01-06 18:11:52 +01:00
Blaž Kristan
c7eccfb714 FX updates:
- Ripple (2D & no Bg)
- Glitter (no Bg)
- Sparkle (no Bg)
- Scan (no Bg)
- Two dots (no Bg)
- ICU (no Bg)
- Lightning (no Bg)
- Halloween eyes (no Bg)
- Spots (no Bg)
- Bouncing Balls (no BG)
- Popcorn (no Bg)
- Starburst (no Bg)
- Drip (no Bg)
- Whitespace cleanup
- draw_circle()

"no Bg" will allow overlapping segments if checked.
2023-01-06 09:10:39 +01:00
Caleb Marting
187ecf511f
2d Mapping with Matrix Gaps (#2892)
* New 2d mapping
* panel matrix generator
* add todos, fix vert/horz swap
* Fix 2d mapping to matrix in settings 2D
* add correct index mapping to pixels per panel
* fix panel bug in led layout
* formatting and change max panels
* add per panel width and height
* fix using length instead of custom mapping size
* fix: panel dimensions location

* panel[] implemented as a vector.
Removed matrixWidth & matrixHeight.
Panel structure update.
* Fixes.

Co-authored-by: Blaz Kristan <blaz@kristan-sp.si>
2023-01-02 20:56:00 +01:00
Blaz Kristan
474e86306f Bugfix: incorrect maxWidth after switching from 2D 2022-12-24 22:00:35 +01:00
Blaz Kristan
22b2503839 Bugfix & code optimisation. 2022-12-22 18:13:32 +01:00
Blaz Kristan
3c5838cafd Remove "strip" dependency in Segment class 2022-12-16 22:31:07 +01:00
Blaz Kristan
b6db86da50 Allow matrix bigger than LED count (missing panels) 2022-11-23 16:54:32 +01:00
Blaz Kristan
c9fd69ceb7 Preset loading tuning.
Multi-relay toggle support.
Fire2012 tuning.
2D functions tuning.
Global SPI comments & tuning.
Bugfix in 4LD usermod.
2022-09-09 17:21:13 +02:00
cschwinne
a0c90d4ba3 Disable unused characters in fonts
saves 5kB flash
Added 4x6 font
2022-09-05 03:18:59 +02:00
Blaz Kristan
8719adef1e Tetrix vStrip 2D modification.
AA version of Bouncing balls
Better AA
2022-08-30 17:20:58 +02:00
Blaz Kristan
fb6dfcd3fc Index under- shooting.
Fix for arc 1D to 2D mapping.
UI segment 2D mapping fix.
Watchdog reposition & flicker reduction.
2022-08-22 16:47:25 +02:00
Blaž Kristan
e14c5bbd25 Fix in is2D()
Vertical & horizontal 1D segment (on 2D matrix)
Index overshooting fix.
2022-08-22 14:08:45 +02:00
Blaz Kristan
74b6a78a9b Effect fixes. 2022-08-13 00:58:27 +02:00
Blaž Kristan
52e5f467b0 Added two more fonts to Scrolling text. 2022-08-11 11:46:30 +02:00
Blaz Kristan
a8785570df Memory allocation fixes.
Whitespace.
Cleanup.
2022-08-06 12:39:12 +02:00
Blaz Kristan
9270f80af2 Merge branch 'integration' into merge-audio 2022-08-05 23:03:38 +02:00
Blaž Kristan
c5f3e76b21 Compile optimisations, code reduction.
2D peek resize.
2022-08-03 14:23:24 +02:00
ewowi
7b3fc206f7 Merge leftovers 2022-08-02 21:52:10 +02:00
ewowi
44c585e8c8 Merge branch 'ledsArrayToSGPC' into integration 2022-08-02 21:12:59 +02:00
ewowi
640f45f57d Remove leds array from utility functions + small things
- Remove CRGB* leds from utility functions
- GameOfLife: fill_solid for prevLeds to for loop
- Remove if !fftResult
- Funky Plank: toggle src and dst
- Comment drawLine as not used
- Duplicate FadeToBlack, call one FadeToBlackOld
2022-08-02 19:44:27 +02:00
Blaz Kristan
0ba8bace0d 2D optimisations. 2022-08-02 18:27:32 +02:00
ewowi
5f8b8835e1 Leds removal leftovers
- Remove leds from 1D SEGMENT.data effects
- Noisefire: re-establish own palette
- FreqMatrix to circle mapping
2022-08-02 12:58:35 +02:00
ewowi
78edcfe5cf Merge branch 'ledsArrayToSGPC' into integration 2022-08-02 12:21:46 +02:00
ewowi
2ca5e0c8b8 Remove leds from FX.cpp
- add addPixelColor overloads
- remove setPixels function
- sPC/gPC move leds check to beginning
- refactor wu_pixel work without leds
- remove leds out of effects and replace by sPC/gPC/aPC/nullptr
- workaround %=
- refactor game of life (but need to check patterns / history, see SR)
- refactor fill_circle to work without leds
2022-08-02 12:19:04 +02:00
Blaz Kristan
7ca1d99412 Multiple additions:
- transparent leds[] for getPixelColor()
- sample 2D Black Hole for trnasparent leds[]
- conditional audio compile (WLED_NO_AUDIO)

Bugfix:
- effect filtering
2022-08-01 22:01:24 +02:00
ewowi
987b442796 Merge branch 'ledsArrayToSGPC' into integrationMergeOnly 2022-08-01 16:25:51 +02:00
ewowi
004c2920f5 All effects use strip.leds, refactor XY
- remove leds out of SEGMENT.data (remove if no other use of data)
- use strip.leds
- refactor XY to make segment relative to the whole matrix
- use RGBW32
- in case of 1D also use XY in leds[]: XY(i%width, i/width)]
- add ps_malloc
2022-08-01 16:11:59 +02:00
ewowi
69f9a484ca strip.leds array fully fastLed and segment compatible
- leds array from uint32_t to CRGB for fastled compatibility
- reading and writing leds from strip to segment sPC/gPC so it has logical instead of physical indexes so it can be used in effects
- change mode_2DBlackHole as showcase how it can both work with leds or with sPC/gPC
2022-07-31 14:48:00 +02:00
Blaz Kristan
dde5367560 Default palette gamma fix.
Reverted to leds[] in SR effects.
Code optimisations.
2022-07-31 13:28:12 +02:00
ewowi
66da57f375 POC to use leds array in strip.set/getPixelColor 2022-07-31 12:38:10 +02:00
Blaz Kristan
d328db543e Bugfixes.
- gamma on *Color palettes
- gamma moved out of WS2812FX
- palette fade (JSON) fix
2022-07-30 23:58:29 +02:00
Blaz Kristan
f16558c126 Optimisations. 2022-07-30 14:20:36 +02:00
Blaz Kristan
18884111a6 Scrolling text center & letter M 2022-07-23 22:56:33 +02:00
Blaz Kristan
6c6849d8d7 Vectors & dynamic loadJS.
- Segments
- Modes

NOTE: crashes ESP if effect is running while deleting segment.
2022-07-17 15:58:41 +02:00