#qt #opengl
#qt #opengl
Вопрос:
Большинство методов glVertexAttrib (например glVertexAttrib4fv()
) являются только частью профиля совместимости в Qt. Единственными методами в основных классах (например. QOpenGLFunctions_4_3_Core
) являются методы для GLdouble и GLuint, более старые версии, такие как QOpenGLFunctions_3_3_Core
, включают только методы GLuint. В чем причина этого? Согласно официальной ссылке на OpenGL (https://www.opengl.org/sdk/docs/man4 /) все они являются частью основного профиля даже в последней версии.
РЕДАКТИРОВАТЬ: Это ошибка в Qt и должна быть исправлена в Qt 5.4.0
Ответ №1:
Звучит как ошибка, поэтому пожалуйста, сообщите об этом. Версионные преобразователи функций GL (т. е. QOpenGLFunctions_X_Y_Profile
, не QOpenGLFunctions) автоматически генерируются из файлов спецификаций, опубликованных Khronos, которые, в свою очередь, как известно, содержат ошибки.
(И, пока мы разговариваем, генератор обновляется, чтобы использовать новые XML-файлы и иметь функции 4.4).
В любом случае необходимо проверить, является ли это ошибкой генератора или спецификации, и исправить.
Комментарии:
1. Полезно знать. Я сделаю это, если об этом еще не сообщалось. (Хотя я думаю, что вполне вероятно, что кто-то другой уже сделал это)
2. Если вы обнаружите завершающий отчет об ошибке или отправите новый, пожалуйста, оставьте здесь ссылку на него!
3. Кстати: я обнаружил еще одну ошибку в реализации Qt OpenGL и сообщил об этом здесь: bugreports.qt-project.org/browse/QTBUG-40150 (Пока не получил ответа)