just searched the whole board, but didn't find a suitable answer. So, heres my problem:
I've looked at the matrix4 class and saw that there is a 16 field array storing the matrix data. As mentioned by Mark Segal from OpenGL, there is no difference between row-major and column-major in memory-layout.
So far now. If i get it right, D3D uses row-vectors and row-major layout while OpenGL uses column-vectors and column-major layout.
In COpenGLDriver the transformation is passed to opengl as a pointer to the array with the matrix data but without transposing. So you put a row-major matrix to a function which implies a column-major layout.
I really don't get the clue why the matrix is not transposed before passing it to glLoadMatrix. Is it possible to pass both layouts to the function and if yes, why does the OpenGL spec says you have to use column-major matrices?
Any help would be very nice!
Thanks in advance,
-Yannick
[edit]
Some browsing later, i found the description of a function glLoadMatrixTranspose. Seems the main difference between normal and transposed matrices in this case is the possibility to use two-dimensional arrays in c-style. If i use just an array of 16 floats, there is technically no difference between a d3d style matrix and an opengl matrix. correct me if im wrong.
![Wink ;-)](./images/smilies/icon_wink.gif)