I've been having this "liittle problem" for a while :
http://s7.postimg.org/k32r23lmz/Diff.png
Everything (except the ImGui Window is rendered to a texture and after that that texture gets rendered to the window).
The problem is the way APIs handle texture coordinates/Viewport/Scissors Rect. Knowing that OpenGL (0,0) tex-coord is at the left-bottom and glTexImage2D assumes that the image that is organized from bottom to the top it was really tempting to try to "force" OpenGL to deal with texture coordinates like D3D.
This works fine if we ignore the Frame Buffers.So In order to fake that I've flipped the projection matrices Y-cords, and I've inverted the Front Face Triangle Winding. In that case everything works fine, except for the moment when you actually draw to the window. Well the end result is flipped by Y.
One way to fix this is to reverse the flip when drawing to the default frame buffer(the screen).
With my custom API I know when a draw call is going to be submitted to the screen, the problem is that "in general" I don't know the name of the uniform that hold the projection matrix, In theory the projection matrix could be hardcoded into the shader code.
And basically I'm stuck here.. I could hardcode that case, but I really want find a solution to that problem?
...or maybe trying to make OpenGL look more D3D-ish is not the right solution?? What is you approach?