I’ve done this by implementing Dim’s gradient panel from the blogs comments, this buffers the rather complex gradient on the background, hence stopping it from redrawing every single time we paint he animation and it took quite a load off the CPU. Next i went about changing some of the rendering hints to some lower quality values and i honestly can’t see a differnece. I then started to do some minor code changes which envolved chagning all the floats to doubles (it seems to lightly increase performance) and also changing all divide by 2 references to right shift 1 and the multiply by 2 to left shift 1.
Now on starting it’s using about 46% of my work box’s CPU (Celeron 2ghz) and after running for about 5 seconds it hovers around the 8% / 13% mark and then after another 3 seconds it’s ranging from 0% / 3%. Quite significant improvements for a demo that was starting at bout 70% and hovering around 50% still after a long period of time.