I assume you mean the functionality that's built into the TDXImagelist object? I use them extensively, but I was wanting to use surfaces for the following two reasons:
- Maintain pre-rendered versions of a group of images (Great for improving performance), or pre-rendered rotations/alpha/etc
- Using them for pixel accurate collission detection checks (Using the DXDraw surface works, but it's not as efficient or convenient)

Ah, ok then I probably do know how to implement those hit boxes, I just haven't done it before. I'll go have a look through my 3D math references again sometime.

I've implemented the pixel checks in exactly the way you've described, the only difference is that I'm running them in a separate point in the program from the render function.

Anyhow, the result of this whole saga is that I've found two bugs within UnDelphiX 1.07, and two features I'd like to see implemented. I know you do have (or have had) some involvement with its development, so if there are plans for another version, it would be great if the following could be done:

Bug to Fix (The two bugs below are not present in the older version of UnDelphiX that I'm running. It's either v1.0.5 or v1.0.6)
- Surfaces fail to render in hardware mode (See that project I uploaded for an example)
- You cannot use more than one TDXImagelist class in your project, rendering fails. It's quite possible this bug is related to the first one.

Features
- Hardware rendering to surfaces
- DrawSkew functions (Basically, the ability to draw an image warped into a parallelogram/rhombus. Needs to be able to stretch):
Code:
|--------|          /--------/
|        |         /        /
|        | -->    /        /
|        |       /        /
|--------|      /--------/