Like OpenGL? Or what options do we have in JUCE?
The good looking lines you mentioned can’t be done with rectangles, it only happens when rasterizing a path. I’ve been searching a bit and software rasterizers are really fast, often faster than HW (like UE5 nanite, they do it by software 90% of the time) specially when there are a lot of small triangles (smaller than 2x2 pixels). Jules said rasterizing wss the bottleneck not drawing, so OpenGL wouldn’t help much.
So one option may be ditching JUCE’s Path and Edgetables, which in the end are a jack of all trades that need to work for everyone (so can’t be really optimized much) and going for your own optimized path tracer (lines/optimized splines + a relatively simple rasterizer into bitmaps/images). You can even use SIMD for splines knowing the amount of samples. For instance EdgeTable uses a lot of divisions by a predefined integer “scale” that could be replaced by way cheaper binary operators. Also the size and data moving thing I already mentioned, if you know the size you need you can optimize things much more.
Well to be fair, Ableton shows little dots where the actual samples are. I think it’s essentially just drawing a resampled waveform where the number of “virtual” samples is equal to the number of pixels width on the screen.
