Ok, I think I found the problem: the rotation transform (I was suspecting it was that)
If all transforms are set at once on the modelview, the final result with a negative scale isn't symmetric, because the rotation is performed after the scale (or something like that).
This morning I tried to fix it by defining and applying my own matrices, but I still didn't solved it completely. It's working only when the origin is (0,0). But I hadn't much time to work on it yet...
It was a long time since I learnt openGL at univ, so I don't remember well this things and how to solve it. But you should know better than me :wink:
This is also :?, I work on my engine on scare free times, but now I got this limitation to work around, slowing down my project a bit more
I could try to solve it ad hoc, but I'm not sure whether I'll need other methods (like transformToLocal), best would be to solve it once and for all :roll:
Here, an example:
2 images with origin (0,0), position (100,100), and both rotated by 45ยบ. One has scale (1,1), the other has scale (-1,1)
Left: Applying all transforms at once on the modelview matrix.
Right: Applying everything but rotation first, then rotation. (not working yet for different origins..)