That is what I already suggested above but that creates massive problems when 2 rotate with viewport should be drawed.
Grey:
Yes it means 4 pairs. UV always referres to 2D point coordinates.
You can not use TQuad, you must operate on the vertex buffers yourself I fear. As you've realized yourself, you can only give TQuad 2 coordinates, as it is meant for axis aligned rects, not rotate rects which need 4 (ok correctly 3 as it has a degree 3 freedom, x, y, angle) coordinates.
In DX this means the above mentioned xyzuv array
As I mentioned above, BM already has an internal polygon function which allows to draw a polygon. I would suggest to have a look at this one and create your function basing on that.
That or use one of the texture poly codes here on the boards.
Past that point the only thing you need to do is doing the math to transform the UV coordinates correctly. Because normally you calculate the new position of the vertices in the calculation. But what you do is rotate the image and calculate the new coordinates of the vertices within this image ie you calculate the inverse rotation.
So far no problem. But in a lot of cases the coordinates will not be within the original texture. At that point you must clamp the texture to prevent auto repeat of the texture. (normally when you would have a UV coord of 1.1 you would see the regular texture and part of a repeated one)
This is doable and not to hard, but needs lower level coding than using Max2D commads and therefor might need adjustment in the future.
Sadly the Scissor Test like the one GL does was not added to DX until DX9 ...
For that reason there is no simple solution on DX for this issue unless you want to include the user created DX9 driver as default into your framework ...
Grey:
Yes it means 4 pairs. UV always referres to 2D point coordinates.
You can not use TQuad, you must operate on the vertex buffers yourself I fear. As you've realized yourself, you can only give TQuad 2 coordinates, as it is meant for axis aligned rects, not rotate rects which need 4 (ok correctly 3 as it has a degree 3 freedom, x, y, angle) coordinates.
In DX this means the above mentioned xyzuv array
As I mentioned above, BM already has an internal polygon function which allows to draw a polygon. I would suggest to have a look at this one and create your function basing on that.
That or use one of the texture poly codes here on the boards.
Past that point the only thing you need to do is doing the math to transform the UV coordinates correctly. Because normally you calculate the new position of the vertices in the calculation. But what you do is rotate the image and calculate the new coordinates of the vertices within this image ie you calculate the inverse rotation.
So far no problem. But in a lot of cases the coordinates will not be within the original texture. At that point you must clamp the texture to prevent auto repeat of the texture. (normally when you would have a UV coord of 1.1 you would see the regular texture and part of a repeated one)
This is doable and not to hard, but needs lower level coding than using Max2D commads and therefor might need adjustment in the future.
Sadly the Scissor Test like the one GL does was not added to DX until DX9 ...
For that reason there is no simple solution on DX for this issue unless you want to include the user created DX9 driver as default into your framework ...