uhm, as for the Surfaces failing to render in hardware mode, I'm absoletely sure that they work perfectly using TDirectDrawSurfaces. Using a TImageList... Well, I somehow doubt that it isn't working, I think you mused something up. More than one DXImageList - I have no idea, but I can't imagine why you'd really need two of them

As for what I mean, here's a little illustration:


I hope it's about understandable, that'd be the rotated rectangle. You know its corners and a dot you want to know if it's in it or outside of it. You can count which side of a rectangle-side it is on with the described way, you need to count it for 2-4 sides, whichever would be faster for the computer... (Guess it's probably the 4 sides)

If you wish to see if a line intersects the rectangle, that's even more easy. You count the equation for all rectangle edges and the line, count the variables from the two equation for the intersection coordinate, then compare it to the line's ending points.

If you wish to see if rect hits rect, then you need to follow about the same logic as with the line.

This algo wouldn't be much easy, but written well, I'm pretty sure it'd be much faster than per pixel checking, and it'd be a bit scalable, say, you wouldn't want to call it a hit if you want to make the target image look like it's in 3D, so it could as well hit it at its middle or so.

And now, let's see that uploaded project.......................