Commit Graph

618 Commits

Author SHA1 Message Date
Frank
e3d27de395 better handling of perspective
drawLine parameter "depth" shortens a line by a fraction - useful for VP perspective (vanishing point)
2024-07-16 13:27:56 +02:00
Frank
6565e716ab GEQ speedup
use drawLine() to draw a complete bar at once. Only possible if _not_ doing colored bars.
2024-07-15 18:14:30 +02:00
Troy
98c15d7ec0 Borders checkbox 2024-07-15 08:18:42 -04:00
Troy
54f9d4ca6d Borders checkbox for @netmindz
Netmindz likes the borders. Now a check-box to enable.
2024-07-15 08:17:00 -04:00
Frank
5401328b6e loop optimizations
* made cols/rows integer, to avoid that "cols-x" wraps around
* pre-compute some expressions that don't depend on loop counters

--> wins us 1-4 fps on my 72x72 test setup
2024-07-15 14:05:19 +02:00
Frank
4f6eb8b161 prevent array bounds violation
+ don't use dynamic array for heights[] - dynamic arrays are using malloc() -> heap frag.
2024-07-15 13:24:18 +02:00
Frank
6d1615189b Merge branch 'mdev' into 3DGEQ 2024-07-15 12:33:48 +02:00
Frank
d0927a5142 akemi and GEQ didn't like map2 2024-07-15 12:29:29 +02:00
Frank
d2762c35b0 Update FX.cpp
* add more accurate version of map() - reduces slight flickering in some 2D effects
* cache fftResult[] in effects (um_data->fftresult might get updated while the effect still calculates)
2024-07-15 11:57:46 +02:00
Troy
3857862e03 Optimized side-wall drawing
Only draw what will be visible.

This is a pretty solid speed increase when the adjacent bar is close in height, or if it's taller and would occlude it anyway, it'll be skipped.
2024-07-14 22:32:42 -04:00
Troy
643f82daf0 Don't use new soft drawline() option 2024-07-12 22:32:14 -04:00
Troy
4c8d500215 Seems someone improved drawline() - fixed for this 2024-07-12 22:12:59 -04:00
Troy
52130e176c Merge branch 'mdev' into 3DGEQ 2024-07-12 22:10:39 -04:00
Troy
ce8f01bf90 Bugfixed GEQ 3D
Bug fixes after lots of testing, better settings, etc.

Big thanks to @netmindz  for restructuring the code.

Add rough distance stop to Segment::drawLine()
2024-07-12 22:03:33 -04:00
Will Tatam
aed861d063 GEQ Laser use SEGMENT.data 2024-07-10 23:58:35 +01:00
Will Tatam
8f4380b075 Rename 3D GEQ to GEQ Laser 2024-07-10 23:51:53 +01:00
Will Tatam
bda4bbeeec 3D GEQ - fade speed 2024-07-10 23:00:42 +01:00
Will Tatam
3fd8078722 3D GEQ - customisable number of bands 2024-07-10 09:40:40 +01:00
Will Tatam
cb3d06bc89 3D GEQ - variable front brightness 2024-07-10 09:24:26 +01:00
Will Tatam
f6cd28cea2 3D GEQ - customisable number of bands 2024-07-10 09:20:58 +01:00
Will Tatam
45f288a2f2 3D GEQ - make front brightness a control 2024-07-10 08:59:05 +01:00
Will Tatam
2d7e416879 ; 2024-07-10 08:33:42 +01:00
Will Tatam
e452d4d316 Add @TroyHacks 3D GEQ 2024-07-10 08:26:07 +01:00
Will Tatam
e2f23542f5 Add @TroyHacks 3D GEQ 2024-07-10 08:25:40 +01:00
Blaz Kristan
2aad3f5356 Antialiased line & circle 2024-06-26 22:40:59 +02:00
Troy
93ec9b9151 Stop double first pixel on waterfall effect 2024-06-25 23:28:33 -04:00
Brandon502
9ef8ff6a16 GoL - Redraw loop changes
Merged generation == 1 checks into standard checks.
2024-06-20 01:07:52 -04:00
Brandon502
086b0e3e0e GoL - Game start transition
Starting alive cells are randomly colored in and bg fades on game start.
2024-06-19 23:09:31 -04:00
Brandon502
4aee7eb6c6 GoL - Small fix
Remove redundant check
2024-06-19 19:00:14 -04:00
Brandon502
e8e784ddcd GoL CRGB changed to uint32 & color_blend()
Other small changes.
2024-06-19 15:25:51 -04:00
Brandon502
015260c5ad GoL - Small color fix and glider detection change.
Wrap is disabled if only 5 remaining alive cells (Glider).
2024-06-09 15:50:07 -04:00
Brandon502
5a6d80f30b GoL - Correct data allocation
Fixed overlooked data allocation after switching gliderLength to uint16.
2024-06-05 12:41:36 -04:00
Brandon502
c655db3864 GoL - gliderLength switched to uint16_t 2024-06-05 11:46:23 -04:00
Brandon502
f528aef6ba GoL - Allows default overlay mode.
Flicker fixed by always redrawing dead cells if overlay unchecked. Can swap between overlay types by checking/unchecking overlayBG.
2024-06-05 01:07:27 -04:00
Brandon502
8c3e2cefab GoL - Rework
Blur now fades while game is paused.
New blur mode when blur slider is >220
Added variables to make code easier to follow instead of check1 custom1 etc. (not needed)
Removed % with random8 calls.
Misc changes
2024-06-04 16:18:54 -04:00
Brandon502
7657c90c75 GoL - Uses cIndex more consistently 2024-05-24 14:38:35 -04:00
Brandon502
aea68df813 Merge branch 'mdev' of https://github.com/Brandon502/WLED into mdev 2024-05-24 14:12:33 -04:00
Brandon502
b673748e61 Merge branch 'MoonModules:mdev' into mdev 2024-05-24 14:11:35 -04:00
Brandon502
84128eef8b GoL - Changed speed slider to updates/sec
Every 4 ticks of speed adds 1 update per second. 1 - 64.
2024-05-24 14:10:16 -04:00
Brandon502
886ea5f88c GoL - Palette Switching
Recolors all live cells on palette/color change. Before you needed a game restart or mutation over time.
2024-05-24 13:41:49 -04:00
Brandon502
631aa35718 GoL - Change default values.
General cleanup.
2024-05-24 13:20:29 -04:00
Brandon502
8491cf18f7 GoL - Removed pauseFrames
Uses .step now to pause.
2024-05-24 13:00:10 -04:00
Brandon502
09dad1d796 GoL - Added blur slider
Blurs dead cells instead of immediately turning off depending on slider value. Blur is disabled when using overlay.
2024-05-24 12:45:13 -04:00
Brandon502
eb3406e200 GoL Memory Leak fix
Removed gameoflife struct.
2024-05-24 11:35:34 -04:00
Frank
6f6ba307c8 drip effect bugfixing
* bring back lost parameter "Fall ratio" (MM specific)
* stabilize the math, avoid rounding errors and unsigned overflows
* speed limit for long strips added
* gravity reduced slightly
2024-05-24 17:28:19 +02:00
Frank
21e6b4d62f optimization
replacing MIN / MAX (arduino macros) by more efficient min/max (libc templates)
2024-05-24 11:26:28 +02:00
Frank
a50e77db26 2D Crazy Bees bugfixes
* solve int8 overflow on "error2" (large fixtures) - based on 2c87f7e752
* use fast int types where possible
2024-05-24 11:12:50 +02:00
Frank
14efccecea minor 2024-05-24 10:46:58 +02:00
Frank
0c6c707c6b robustness improvements for game of life
* fixed: dataSize could be too small if size is not a multiple of 8
* use size_t for memory size
* clear LEDS on first run - just to make sure that buffer optimizations in segment class work as expected
2024-05-16 17:31:46 +02:00
Ewoud
83d3f27c8c Merge remote-tracking branch 'Brandon502/mdev' into mdev 2024-05-16 15:21:57 +02:00