On 8/29/07, MenTaLguY <mental@...3...> wrote:
!!! That's a pleasant surprise; I was trying carefully to preserve the same code, only rearranging it so there was less duplication and changes were easier to make without needing to change multiple places in sync.
Hey, I'm a little jealous :) For the last few versions I've been fighting hard to gain each single % of speed, and now you come and make it so much faster without even suspecting it :)
I noticed you replaced address assignments with memcpy in compose function, and I think it's where the speedup comes from, even if the memcpy only copies 4 bytes in each run. Perhaps it's getting replaced with some optimized single-tick operation.
I think if you're working on gradients, you should make a similar file with thousands of gradients for yourself and run it after each recompile:
time file.svg --verb=FileClose
to notice early if your changes are making things better or worse.
As for further refinements, I'm all for creating separate modes for screen display (fast) and for export (correct). We already do it for blur. Let's make the screen gradients even faster and export gradients more correct :)