Hmm.. thats wierd.. Only half my message appeared.. With a fresh cup of coffee in hand, lets try this again... :)
I think I have been able to get a little closer to having faster speeds with Xojo, and it looks like it might be with an OpenGLSurface that loads the circles into memory, and uses the GPU to perform the drawing function while the CPU performs calculations for the new position of the circles. The GPU can be forced to work hard, as I can hear the cooling fan start spinning.
The code is not optimized, and it does seem to have quite a performance increase.
Explaining running of the program:
The default number of circles (ball) is 100. If you want to change this number, stop the program, go into the Xojo IDE and change the text to 200, or 50, or whatever number you would like. This step is needed because the circles have been loaded when opening the program. This can be changed in the future when given more thought (I am out of coffee at the moment). Here is the link to download the program.
Number of Circles Target FPS Measured FPS
300 300 145
200 300 222
100 300 239
Steps to change the Target FPS are: Change the number in the textbox, press 'Reset Ball' pushbutton, and wait until the animation stops. Press 'Run test' to start animation with the new parameters.
The GPU is working harder because I can hear the GPU fan starting on my computer when running the program for a while - this is good news!