That is a pretty good effect, I'd like to wish you good luck in the competition!

Looking at the source I am sure that it can be optimised quite a lot more.
The two matrix constants can be computed outside the loop;
MO1= COS (THETA)
MO2= SIN (THETA)
And then inside the loop;
ONE AXIS OF ROTATION
XXX=X(L)
YYY=Y(L)
X(L) = MO1 * XXX - MO2 * YYY
Y(L) = MO1 * YYY + MO2 * XXX
Which is probably still not the way I'd go about making this effect, but it would be a little faster than it is at the moment.
If I had to code this in software I'd make a very quick and dirty linear texture mapping routine, there would be no problem with warping of textures because there is no Z Co-ordinate.
But anyway I'll STFU now, the effect looks nice and the best of luck with the comp
