I'm writing a 2d asteroids clone. Nothing fancy, its the first game I actually plan on finishing. I'm not using TSprites just the DXImageList.Draw functions at the moment. Picture this, I have an asteroid, an explosion and a ship, wizzing about 60 fps no problems. However when I add the "Laser Beam" (I feel like Dr. Evil now) or the "Shields" my framerate drops (to about 55 with the laser beam and about 30 with the shields). These are both using DrawRotateAlpha's but if I change them to plain on DrawRotate's I get the same frame droppage.

I've listed out the on screen items below, what functions I'm using to draw them and their sizes. If anyone could shed some light on the situation I'd be very gratefull.

Asteroid: DrawRotate
64x64, 4096bytes

Explosion: Draw
194x129 Image (6 64x64 frames), 25284bytes

Ship: DrawRotate
64 x 192 (3 64x64 frames), 12288 bytes

EnergyBar Outline: Draw
21 x 176, 4224 bytes

EnergyBar: StretchDraw (stretch height from 1 to 176)
21 x 176, 4224 bytes

Laser: DrawRotateAlpha
5 x 192, 1536bytes

Shields: DrawRotateAlpha (this is drawn over the SHIP)
96 x 96, 9216 bytes