LibUFO uses an ortho projection matrix.
It is y-flipped according to OpenGL (i.e. (0,0) at the top left corner). This matches the usually used projection for 2D GUI application.
This enforces several GL state changes to ensure that drawing UFO widget is like drawing widge using traditional 2D APIs:
glFrontFace(GL_CW)
).
This is because all UFO polygons use clockwise orientation.
In GL they would be interpreted as counter-clockwise
(due to its y-flipped projection).
Therefore we have to flip the front face to get the desired culling.Please note that this affects only drawing using the UFO API. For custom drawing using directly OpenGL you can work as you wish.
These changes are since version 0.8.0.