Перенос кода OpenGL между языками и платформами графического интерфейса не должен сильно изменить код. При переходе от GLUT к Qt, например, вы перемещаете код изменения формы GLUT в функцию resizeGL QGLWidget, а функцию отображения GLUT — в функцию paintGL QGLWidget. Это самое большое изменение при переходе от GLUT к Qt, помимо настроек.
Кроме того, все в значительной степени связано с небольшими бонусными утилитами и классами. Вы в основном должны искать класс, когда вам это нужно. Например: «Я собираюсь использовать шейдер, поэтому давайте посмотрим, есть ли в Qt какие-либо вспомогательные классы». Вы найдете класс под названием QGLShader, который, кажется, помогает, но у него нет документации, поэтому вам следует попробовать другой класс, у которого может быть документация, такая как QGLShaderProgram.
http://doc.trolltech.com/4.6/qglshaderprogram.html#details
Переходя к деталям, он дает вам пример/руководство по его использованию и классу QGLShader.
Для небольших классов, таких как векторы и матрицы, вам нужно просто прочитать их документацию по функциям, что достаточно просто. Векторы, например, имеют класс QVector3. Я могу посмотреть на его страницу класса и увидеть, что он имеет нормальную функциональность, которую я ожидал бы от векторного класса, например, нормализацию, добавление и т. д. Учебник по чему-то такому простому на самом деле не помог бы мне.
По моему опыту, это стандартный способ использования оболочек в OpenGL. В JOGL, например, есть большой класс Texture, который полезен для ввода текстур. Когда мне нужно было добавить текстуры, я нашел это, просто выполнив поиск «текстура» в javadoc.
04.05.2010