Edit: Summarizing what I want to do, more concise:
Render a texture of size wi,hi
to an output texture wo,ho
, so that the aspect ratio of input texture is maintained, and it fits inside the output texture, eventually with black borders if aspect ratio is different. For this I want to use a perspective projection, as I may rotate or apply other transforms to the input texture.
Then I want this output texture to be displayed on screen, with size ws, hs
, where hs
may be larger than ws
. Again, maintaining aspect ratio and fitting with black borders. Here an orthogonal projection should be enough, as only rendering to screen is required, no further processing.
I want to do it without hacks, in order to make my life easier in case I want later to rotate, scale the original texture. I can figure by trial and error how to modify the parameters to get what I want now, but would rather use each matrix in the way it is intended.