* require at least a 3x3 setup
* make sure that NUM_BANDS is limited by available columns
* avoid drawing with negative Y
* slightly reduce default "front fill", so that "borders" has a visible effect when running with defaults
* bugfix for Borders (did not work with <16 bands)
* new option for soft light: when checked, the left & right edges of top lights are drawn with anti-aliasing on. Costs us 1-2 fps, so I made it optional.
* 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
* 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)
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.
* 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
Bug fixes after lots of testing, better settings, etc.
Big thanks to @netmindz for restructuring the code.
Add rough distance stop to Segment::drawLine()
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