Warning! Apply shadows sparingly!
Applying shadowing is expensive and is multiplicatively expensive if you apply shadowing inside an animation loop.
Instead, cache a shadowed version of your image (or other drawing):
At the start of your app, create a shadowed version of your image in a secon...