Commit Graph

3832 Commits

Author SHA1 Message Date
Frank
96584c6c70 better rounding 2024-07-16 15:13:05 +02:00
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
Frank
961040849e speedup for pinwheel mapping
fast sPC() in pinwheel mapping -> ~10% speedup
2024-07-15 18:06:25 +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
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
dddd1574ec (experimental) setPixelColorXY_fast speedup by setPixelColorXY_fast
* adding a _fast_ variant of SetPixelColorXY, that does not perform any error checking.
* drawLine uses the fast setPixelColor variant (bresenham algo only)
* for TESTING: segment option "reverse" switches back to the "original slow" code.
surely needs some more optimization and improvements.

First test on GEQ 3D shows 10%-30% speedup
2024-07-14 14:11:11 +02:00
Will Tatam
aa6d275a86 Swap DMX port to 1, persist user choice of port, validate port vs UART count 2024-07-13 20:26:26 +01:00
Will Tatam
584ca5e8ae Double buffer needed to prevent flicker for effects like GEQ 2024-07-13 13:51:59 +01:00
Troy
75f0c7cb98 Oopsy 2024-07-12 22:34:37 -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
Frank
346914b965 setPixelColorXY small optimizations
Caching a few segment vars gives a 5% speedup on big setups.

Its 2024, and compilers are still stupid :-P
2024-07-13 01:37:43 +02:00
Frank
982a4bb155 Merge pull request #139 from MoonModules/upstream_patch_clusterf
AC minor patch cluster
* Anti-Aliased Lines and Circles
* replacing deprecated functions in ws.cpp
* using global brightness in analogue clock overlay
* fix for palette names (custom palettes)
* bugfix for UI: when resizing the window, it always jumped to the Colors tab
* UI: add webpage shortcuts for tabs
2024-07-13 01:13:53 +02: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
60fbf07bca Fix mx_width and height for 4scan 2024-07-10 23:01:21 +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
Will Tatam
fb30f9c641 Add Hub75Matrix 64x32 (Outdoor 8S) 2024-07-09 21:35:53 +01:00
Will Tatam
5123128e9c Limit hub75 chain length by height 64 not width to allow for 2 x 64x32 2024-07-09 18:39:58 +01:00
Frank
528ec1fa4c version of today, -b32.41
featuring FastPath v2
2024-07-05 18:25:48 +02:00
Frank
8cfd0df710 Update xml.cpp 2024-07-01 22:54:51 +02:00
Frank
29013a3f83 auto-replace long functions with short names
adI = addInfo
adD = addDropdown
adO = addOption
adF = addField

before: String buffer usage: 3183 of 4037 bytes
after:    String buffer usage: 2805 of 4037 bytes
2024-07-01 22:54:24 +02:00
Frank
c07658a7cb post-merge
* fix drawLine prototype
* a few more "inline"
* typo
2024-06-26 23:41:38 +02:00
Blaz Kristan
2aad3f5356 Antialiased line & circle 2024-06-26 22:40:59 +02:00
Pasquale Pizzuti
c22c5b75a0 using global brightness 2024-06-26 22:07:18 +02:00
Woody
383c797746 add Webpage shortcuts, resolves #2362 2024-06-26 21:45:53 +02:00
Pasquale Pizzuti
b01f3118b4 using color_fade 2024-06-26 21:43:20 +02:00
Woody
feac33653f Fix resizing bug
The bug was that when resizing the window, it always jumped to the Colors tab instead of staying on the currently selected tab.
2024-06-26 21:43:20 +02:00
Pasquale Pizzuti
74e999b1e5 using brightness in analog clock overlay 2024-06-26 21:43:20 +02:00
Blaz Kristan
3df3b9acaf ArduinoFFT update
shadow variables
2024-06-26 21:35:19 +02:00
thatdonfc
543dfd206d Fix palette names when palette ID > 58 and not custom 2024-06-26 21:21:54 +02:00
Will Miles
775e07c6d6 serveLiveLeds: Use dynamic buffer
There were three problems here:
- AsyncWebServer is going to copy to a heap buffer anyways, so we might
   as well just pass it one it can use
- The buffer size estimate was wrong -- we need 9 bytes per pixel
   ("RRGGBB",), so the buffer could overflow, and it was not
   considering the extra 2D requirements
- On ESP8266, the stack allocation was overflowing the stack, causing
  corruption and crashes.
2024-06-26 21:20:41 +02:00
Will Miles
9103f6a4df Update for new AsyncWebSocketBuffer
Eliminate the extra indirection and allocate shared buffers directly.
2024-06-26 21:08:21 +02:00